zoukankan      html  css  js  c++  java
  • webpack+react搭建脚手架总结

    1、初始化项目

    npm init

    填写基本信息,生成package.json

    2、安装依赖包

    webpack、babel、react等,webpack、babel工具类 使用npm install --save-dev 安装在"devDependencies"下。

    {
      "name": "wmyyq",
      "version": "1.0.0",
      "main": "src/index.html",
      "author": "yq",
      "license": "ISC",
      "description": "666",
      "repository": {
        "type": "git",
        "url": ""
      },
      "scripts": {
        "dev": "",
        "start": "webpack-dev-server --config ./build/webpack.config.js",
        "build": "webpack --config ./build/webpack.config.js"
      },
      "dependencies": {
        "antd": "^4.18.0",
        "react": "^17.0.2",
        "react-dom": "^17.0.2",
        "react-redux": "^7.2.6",
        "react-router": "^6.2.1",
        "redux": "^4.1.2"
      },
      "devDependencies": {
        "babel-core": "^6.26.3",
        "babel-loader": "^7.1.5",
        "babel-preset-es2015": "^6.24.1",
        "babel-preset-react": "^6.24.1",
        "html-webpack-plugin": "^5.5.0",
        "webpack": "^5.65.0",
        "webpack-cli": "^4.9.1",
        "webpack-dev-server": "^4.7.1"
      }
    }
    知识点:
    1.webpack-dev-server 指定目录下的js启动服务
    2.webpack 进行打包
    3.bable 代码转换器

    3、新建项目目录

     .babelrc

    {
        "presets": ["react", "es2015"],
        "env": {
          "dev": {
              "plugins": [["react-transform", {
                 "transforms": [{
                   "transform": "react-transform-hmr",
                   "imports": ["react"],
                   "locals": ["module"]
                 }]
              }]]
          }
        }
      }

    知识点 :

    一定要在根目录下配置.babelrc文件,此文件用于配置转码规则和插件。cmd进入根目录,输入   type null>.babelrc  即可创建该文件。

    4、配置webpack.config.js

    const path = require('path');
    const webpack = require("webpack");
    const HtmlWebpackPlugin = require('html-webpack-plugin');
    module.exports = {
        mode: "development",
        entry: './src/index.jsx', //js入口文件;
        output: {
            path: path.resolve(__dirname, '../dist'), //利用path包获取绝对文件路径
            filename: 'bundle.js' //打包成功后的文件名<br>
        }, //js出口文件;路径加文件名;
        module: {
            rules: [
                {
                    test: /\.(jsx)$/,
                    exclude: /node_modules/,
                    loader: 'babel-loader'
                }
            ]
        },
        plugins: [
            new HtmlWebpackPlugin({
                template: "src/index.html",
                inject: "body",
                filename: "index.html",
            }) //在 body 中使用 script 标签引入你所有 webpack 生成的 bundle。
        ],
        devServer: {
            static: path.resolve(__dirname, '../src'), //启动入口
            port: 9000,
            hot: true,
            proxy: {//代理服务器 api请求
                '/api': {
                    target: 'http://your_api_server.com',
                    changeOrigin: true,
                    pathRewrite: {
                        '^/api': ''
                    }
                }
            }
        }
    }

    知识点:

    1、devServer配置

    2、HtmlWebpackPlugin

         为html文件中引入外部资源如scriptlink。即index.html引入bundle.js。

    5、src/index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" charset="utf-8">
        <title></title>
    
    </head>
    <body>
    <div id="root"></div>
    <!-- <script src="./bundle.js"></script> -->
    </body>
    </html>

    6、src/index.jsx

    import React from "react";
    import ReactDom from "react-dom";
    
    class Main extends React.Component{
        constructor(props){
            super(props);
        }
        render(){
            return (<div>hello!!</div>)
        }
    }
    ReactDom.render(
        <Main/>,
        document.getElementById('root')
    ) 

    7、运行 npm run start 

  • 相关阅读:
    CodeForces 347B Fixed Points (水题)
    CodeForces 347A Difference Row (水题)
    CodeForces 346A Alice and Bob (数学最大公约数)
    CodeForces 474C Captain Marmot (数学,旋转,暴力)
    CodeForces 474B Worms (水题,二分)
    CodeForces 474A Keyboard (水题)
    压力测试学习(一)
    算法学习(一)五个常用算法概念了解
    C#语言规范
    异常System.Threading.Thread.AbortInternal
  • 原文地址:https://www.cnblogs.com/yangqing22/p/15748875.html
Copyright © 2011-2022 走看看