webpack打包一个项目过程(详细)

前言

项目初始目录结构如下:
-build_test //项目名
 -node_modules
 -public
  index.html
 -src
  index.js //入口文件
  app.js
  other.js
  style.css
 -package.json
其中,public/index.html为展示页面,其代码如下:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8" />
    <title>React App</title>
  </head>
  <body>
    <div id="root"></div>
   <script type="text/javascript" src="builder.js"></script>  //导入打包输出文件
  </body> 
</html>

1.安装webpack

依次执行如下命令:
1.npm install -g webpack; //全局安装webpack
2.npm install webpack --save-dev; //安装关联到项目目录
3.npm install webpack-cli -g; //此工具用于在命令行中运行 webpack
4.npm install webpack webpack-cli --save-dev;

2.下载模块加载器(loader)

安装项目需要用到的所有loaders,例如css-loader、style-loader、babel-loader等。
5.npm install xxx-loader --save-dev;

3.打包两种方式

3.1 手动配置webpack.config.js

1.在build_test下创建文件webpack.config.js:

const path = require('path');

module.exports = {
    entry:path.resolve(__dirname, './src/index.js'),     //指定打包入口文件
    output:{
        path: path.resolve(__dirname, './public'),    //指定打包输出路径
        filename:"builder.js",     //指定打包输出文件名
    },
    devtool:'none',
    
   //devServer 构建本地服务器
    devServer: {
        contentBase:'./public',      
        historyApiFallback:true, //不跳转
        inline:true,//实时刷新
        hot:true //热更新
    },
    module:{    //对模块的处理逻辑
        rules:[    //一系列加载器的处理逻辑
            {
                test:/\.css$/,       //正则,匹配到的文件后缀名
                loaders:["style-loader","css-loader"],   //用此加载器处理匹配到的文件
                exclude:[     //排除此文件夹下的文件
                    path.resolve(__dirname, "./node_modules")
                ]
            },{
                test: /(\.jsx|\.js)$/,
                loader: [
                    "babel-loader"
                ],
                exclude:[ path.resolve(__dirname,"./node_modules/")]
            }
        ]
    },
    
    resolve:{
        extensions: [".js", ".json", ".jsx", ".css"]    //自动补全识别后缀
    }
}

2.devServer 构建本地服务器:让你的浏览器监听你的代码的修改,并自动刷新显示修改后的结果,它是一个单独的组件,在webpack中进行配置之前需要单独安装它作为项目依赖。

npm install --save-dev webpack-dev-server
在这里插入图片描述
3.在终端输入命令,打包并开启本地服务器

webpack-dev-server --port 3000 //此处指定了端口号,也可不写默认8080
4.终端结果输出编译成功,此时可见public文件夹下自动生成了打包输出文件builder.js. 访问localhost:3000,可访问public/index.html内容。

3.2 终端命令打包

npx webpack src/index.js -o public/builder.js --mode development;
此处打包后在public目录下生成打包输出文件builder.js,因未配置本地服务器,需在其他html文件引入builder.js静态访问此html文件以查看页面效果。

猜你喜欢

转载自blog.csdn.net/m0_38073011/article/details/100072193