[关闭]
@2890594972 2019-06-02T16:45:36.000000Z 字数 1644 阅读 687

webpack and react配置

react


1、初始化webpack项目
npm init -y : 快速构建项目,并配置mode: development

2、配置webpack-dev-server
npm webpack webpack-cli webpack-dev-server

3、配置首页自动生成插件

  1. const path = require('path')
  2. const HtmlWebpackPlugin = require('html-webpack-plugin');
  3. const htmlPlugin = new HtmlWebpackPlugin({
  4. template: path.resolve(__dirname,'./src/index.html'),//源文件
  5. filename:'index.html' //生成内存中的文件名
  6. });

4、安装react开发
cnpm i react react-dom -S
注意:编辑react总是报错,卸载不了react包,直接删除node_modules , 然后重新cnpm i就解决了。

5、添加支持jsx语法

  1. module:{//要打包的第三方模块
  2. rules:[
  3. { test:/\.js|jsx$/, use:'babel-loader',exclude: /node_modules/ }
  4. ]
  5. },

6、设置css-modules模块化
规则:less或者scss采用模块化,其他第三方.css则采用全局

7、组件化开发
一个采用class组件,一个采用UI组件

  1. list:[
  2. {id:1, name:"张三",content:"哈哈,沙发"},
  3. {id:2, name:"李四",content:"哈哈,板凳"},
  4. {id:3, name:"王五",content:"哈哈,砖头"},
  5. {id:4, name:"赵六",content:"哈哈,凉席"},
  6. {id:5, name:"田七",content:"哈哈,楼下山炮"}
  7. ]

image.png-140.5kB

  1. const path = require('path')
  2. const HtmlWebpackPlugin = require('html-webpack-plugin');
  3. const htmlPlugin = new HtmlWebpackPlugin({
  4. template: path.resolve(__dirname,'./src/index.html'),//源文件
  5. filename:'index.html' //生成内存中的文件名
  6. });
  7. // chrome v8语法特性,不支持export default
  8. module.exports = {
  9. mode: 'development',
  10. // mode: 'production',
  11. // 配置可以处理jsx语法的loader
  12. // 高版本转换为低版本: babel-core babel-loader babel-plugin-transform-runtime
  13. // 语法处理: babel-preset-env babel-preset-stage-0
  14. module:{//要打包的第三方模块
  15. rules:[
  16. { test:/\.js|jsx$/, use:'babel-loader',exclude: /node_modules/ },
  17. { test:/\.css$/, use: ["style-loader","css-loader"]},//启用全局变量
  18. { test:/\.scss$/,use: ["style-loader","css-loader?modules","sass-loader"]},//启用模块化
  19. { test:/\.ttf|.woff2|.woff|.eot|.svg$/, use: ['url-loader'] }
  20. ]
  21. },
  22. // 引入插件
  23. plugins:[htmlPlugin],
  24. // 配置不识别的拓展插件
  25. resolve:{
  26. extensions:['.jsx','.js','.json'],//表示这几个文件后缀名可以不写
  27. alias: {
  28. '@':path.resolve(__dirname,'./src')
  29. }
  30. }
  31. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注