zoukankan      html  css  js  c++  java
  • webpack4+react脚手架(一)

    非原创,只是根据代码,重复做一遍,记录自己的知识点。推荐原博地址:https://github.com/vortesnail/blog/issues/4

    一、webpack安装

    1、 初始化命令

    【npm init -y】: 该命令会生成一个package.json文件,是配置文件。这个文件定义了项目需要的模块、项目配置信息(如名称、版本)。

    【npm install】: 根据配置文件安装所需要的模块,配置项目需要的运行环境和开发环境。该命令会生成package-lock.json文件。

    2、安装webpack

    (1)【npm install --save-dev webpack webpack-cli】: 安装webpack-cli。因为使用webpack 4+ 版本,必须要安装webpack-cli。安装完成后,会发现package.json中多了一个属性devDependencies。因为 --save-dev表示的是开发时的依赖, --save 表示的时运行时的依赖。接下来的依赖都要用 --save。

    (2)config文件

    在根目录下创建一个config文件夹,用来存放配置文件。然后在这个文件夹里面再创建一个名为webpack.common.config.js的文件,用于存放配置文件。

    【webpack.common.config.js文件】:该文件用来配置出水口和入水口的文件地址。

    const path = require('path')
     module.exports = {
         entry: {
             app: './src/app.js'
         },
         output: {
             filename: 'js/bundle.js',
             path: path.resolve(__dirname, '../dist')
         }
     }

    (3)添加start指令

    在package.json文件里,为script属性添加start指令。指令标注的是配置文件的路径。

    【指令】:webpack --config ./config/webpack.common.config.js

    (4)在控制台进行打包

    【npm run start】: 在控制台输入命令,打包后生成dist/js/bundle.js文件。

    二、webpack-merge的使用

    使用这个工具的原因: 生产环境和测试环境用一套环境就行,为了不写两遍,所以要安装webpack-merge

    1、安装

    【npm install --save-dev webpack-merge】: 安装webpack-merge,放在测试环境下。

    2、config文件夹下建立测试配置文件和生产配置文件

    【webpack.prod.config.js】: 生产配置文件,存放生产环境下的配置。

    【webpack.dev.config.js】: 开发配置文件,存放运行环境下的配置。

    3、webpack.prod.config.js文件进行配置

    利用webpack-merge工具,将common与prod进行merge

    const merge = require('webpack-merge')
    const common = require('./webpack.common.config')
    
    module.exports = merge(common, {
        mode: 'production'
    })

    4、app.js建立连接

    在app.js文件中找到锚点,锚点id为root

    5、public文件夹

    创建public文件夹,在文件夹下创建index.html文件,在文件里创建id='root'的<div>

    6、创建build指令,并在控制台运行

    三、安装React

    1、安装react

    【npm install --save react react-dom 】:react是正式环境需要的

    2、在src文件夹下面建立index.js文件,用来渲染根组件

    3、在index.js文件下面,利用render函数进行根组件的渲染。

    【reactDOM.render(组件名,id锚点】:渲染根组件

    4、利用jsx语法在app.js文件中创建App组件

    5、修改webpack.common.config.js文件的入水口

    6、这个时候执行npm run build命令,会提示打包失败,这是因为webpack并识别不来哦jsx语法,所以需要使用loader对文件进行预处理。

    四、使用babel7 

    1、安装插件

    babel相关的模块有四个:

    "@babel/core": 核心,
    "@babel/preset-env": 转译es6语法,
    "@babel/preset-react": 转译react的jsx语法, 
    "babel-loader": 使用babel和webpack来转译js文件,

    2、根目录配置文件

    只是安装babel是不起作用的,必须要有相对应的配置文件。该文件的位置一定是在根目录下。

    文件名为”.babelrc“; 

    这个文件的配置项主要有两个,presets和plugins。配置参数的相关文档:

    https://www.jianshu.com/p/3881c9ee4497

    3、修改webpack.common.config.js,添加rules属性

    4、控制台打包

    【npm run build】:控制台输入命令,进行打包

    报错:

    1、npm没有安装成功

    ERROR in ./src/index.js
    Module not found: Error: Can't resolve 'react' in '/Users/wenxin/Desktop/myCode/webpack-react-scaffold/src'

    这条错误的下面有一句:

    This is probably not a problem with npm. There is likely additional logging output above.

    但实际上,就是npm没有将react和reactDOM安装成功。在package.json文件中,缺少dependencies属性。重新安装后,报错消失。

    2、.bablerc文件的配置问题

    ERROR in ./src/index.js

    Module build failed (from ./node_modules/babel-loader/lib/index.js):
    Error: Cannot find module '@babel/preset-prest-env' from '/Users/wenxin/Desktop/myCode/webpack-react-scaffold'

    找不到@babel/preset-preset-env这个模块的原因是.bablerc文件配置有问题,我是targets属性写成了“target”,少了个复数s

  • 相关阅读:
    跳表(SkipList)及ConcurrentSkipListMap源码解析
    动态主机配置协议DHCP
    电子邮件
    万维网WWW
    运维技巧(4):管理邮箱收发限制
    运维技巧(3):管理邮箱配额限制:重点是powershell命令操作
    运维技巧(2):创建邮箱方法详解
    运维技巧(1):如何通过邮件头和传输跟踪日志查看原始客户端IP
    管理客户端连接(6):客户端软件可以连接上邮箱
    配置Exchange 防病毒和反垃圾邮件(9)
  • 原文地址:https://www.cnblogs.com/qingshanyici/p/12168795.html
Copyright © 2011-2022 走看看