webpack

WebPack是一个前端静态资源打包工具,它可以把多个静态资源打包成为1个,减少页面资源请求次数。

image-20211015204004953
alt

1 打包js文件

(1) 安装webpack

下面新建文件目录webpackdemo,在该路径下执行npm init -y,然后安装webpack。

npm install -g webpack webpack-cli

查看成功否。

webpack -v

(2)创建资源文件

如下图目录结构创建三个资源文件。

image-20211015210144126
alt

commons.js.

exports.info = function(str) {
    document.write(str)  // 在浏览器页面中输出
}

utils.js.

exports.add = function(a, b) {
    return a + b;
}

main.js

const common = require("./common.js")
const utils = require("./utils")

common.info("hello,webpack" + utils.add(500,20))

(3)打包

在webpackdemo下新建webpack.config.js。配置webpack打包信息。(记得创建输出文件夹)

const path = require("path"); //Node.js内置模块
module.exports = {
    entry: './src/main.js', //配置入口文件,main.js文件中已经引入了另外两个js文件
    output: {
    path: path.resolve(__dirname, './dist'), //输出路径,__dirname:当前文件所在路径.
    filename: 'bundle.js' //输出文件
    }
}

执行打包命令,成功后会生成bundle.js。

webpack # 有黄色警告
webpack --mode=development # 没有警告

编写test.html文件用于测试。右键浏览器打开即可看到js中输出的内容。

<script src="dist/bundle.js"></script>
2 打包css文件

(1)创建css文件

src下新建style.css.

body{
    background-color: brown;
}

main.js中导入。

require("./style.css")

(2)下载插件

npm install --save-dev style-loader css-loader

(3)创建配置文件

const path = require("path"); //Node.js内置模块
module.exports = {
    entry: './src/main.js', //配置入口文件,main.js文件中已经引入了另外两个js文件
    output: {
    path: path.resolve(__dirname, './dist'), //输出路径,__dirname:当前文件所在路径.
    filename: 'bundle.js' //输出文件
    },
    module: {
        rules: [
            {
                test: /\.css$/,        //打包规则应用到以css结尾的文件上
                use: ['style-loader', 'css-loader']
            }
        ]
    }
}

(4)执行打包,请读者自测。