当前位置:首页系统教程react环境搭建及文件配置

react环境搭建及文件配置

webpack简介 构建工具(基于Nodejs)node(v16)前端工程化。
环境搭建 创建一个空的package.json

npm init

webpack核心包(提供了API,插件)

npm i webpack -g
npm i webpack -D

cnpm i webpack -g
cnpm i webpack -D

webpack命令行包(提供了很多命令)

npm i webpack-cli -g
npm i webpack-cli -D

cnpm i webpack-cli -g
cnpm i webpack-cli -D

官方推荐的用于构建本地服务器的包

npm i webpack-dev-server -g
npm i webpack-dev-server -D

cnpm i webpack-dev-server -g
cnpm i webpack-dev-server -D

判断webpack是否安装成功

webpack -v

    webpack是基于NodeJs环境的,webpack工作

    • 官方推荐使用的配置文件:webpack.config.js
    • 在项目根目录创建src/main.js入口文件

 
 webpack.config.js配置文件

//从Node中引入path模块,path.resolve()/join()
const file = require('path)

 const HtmlWebpackPlugin = require('html-webpack-plugin')  const { ProgressPlugin} = require('webpack')



module.exports{
//指定webpack工作模式(两种模式:开发模式(development),打包模式(production))
  mode:'development',
  //入口配置
  //entry:'./src/main.js'  //相对路径
  //entry:path,resolve(__dirname,'src/main.js')  //绝对路径
  entry:{
    app:file.resolve(__dirname,'src/main.js')
  },
  //出口配置
  output:{
    //指定打包结果的输出目录,默认是dist目录,只能使用绝对路径
    path:path.resolve(__dirname,'dist'),
    filename:'[name].[chunkhash:8].js'
    //每次打包时,
    clean:true
  },

  //本地服务配置     devServer:{         port:8088,           open:true   //项目启动成功,自动打开浏览器     }


  plugins:[
    new HtmlWebpackPlugin({
      template:file.resolve(__dirname,'../','public/index.html'),
      //把js脚本注入在body前
      inject:'body',
      //指定打包成功后模板的名字
      filename:'index.html',
      //指定index.html的标题
      title:'沐沐',
      //指定图标路径
      favicon:file.resolve(__dirname,'../','public/index.html'),
    }),

      new ProgressPlugin({         handler(percentage,message,...args){           if(percentage == 1){             console.log('100% 启动成功')           }         }      }),

  ],
  module:{
    //定义模块编译规则和方法
    rules:[
      //当webpack工作时,遇到.js结尾的文件时,就使用babel-loader进行加载,交给@babel/*进行编译。得到es5代码。
      {test:/\.js$/,use:'babel-loader'}
    ]
  }
}

 注意:因为webpack有两种工作模式,为了让配置更加容易维护,所以我们分离环境。  在 webpack --env 指定环境,在配置文件 module.exports = function(env) 接收环境变量。 对 webpack配置进行拆分(公共配置、开发环境配置、打包配置),再使用 webpack-merge合并配置  

const { merge } = require('webpack-merge')

const config = require('./config/config')    //公共配置
const serve = require('./config/serve')    //开发环境配置
const build = require('./config/build')  //打包配置

module.exports = function ( {development} ) {
  return merge(config, development ? serve : build)
}

在webpack中,如何处理.js模块? 安装babel-loader,在公共配置中配置module

npm i babel-loader -D

                                                   

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索