webpack进阶版

113 阅读3分钟

此版紧接上一个webpack基础运用

在项目根目录下创建一个webpack.config.js文件(名字可以随便取,但是为了增加识别度,建议还是跟文中一样取法)
添加一下内容

module.exports = {
  mode: 'development', // 打包方式
}

再次输入 npx webpack ./index.js 运行打包命令,查看与之前的异同.

/*
 * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development").
 * This devtool is neither made for production nor for readable output files.
 * It uses "eval()" calls to create a separate source file in the browser devtools.
 * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
 * or disable the default devtool with "devtool: false".
 * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
 */
/******/ (() => { // webpackBootstrap
/******/ 	var __webpack_modules__ = ({

/***/ "./index.js":
/*!******************!*\
  !*** ./index.js ***!
  \******************/

main.js就变成这个样子了(只是文件的极少一部分)
设置入口和出口.
入口文件是指:webpack从哪里开始分析文件.
出口是指:指定最后打包的文件,这个文件的具体位置在哪里.
默认入口一般是:src/js/index.js
此时可以省略入口文件,直接输入 npx webpack 从新打包文件(可以将之前的main.js删掉,可以更直观的看见效果).
此时目录调整为以下模式. 将src目录下的index.js该为main.js(开发中默认为main.js)

项目名
├── index.html
├── src
│   └── js
│       ├── main.js
│       └── tool.js
├── webpack.config.js  # webpack的配置文件
└── package.json

在webpack.config.js的配置项中添加 entry项,从新打包项目,地址已经改变需要输入 : npx webpack ./src/js/main.js
指定出口文件:在webpack.config.js中设置output项.
目标:把出口文件设置到bulid下面的bulid.js文件下 , 一般情况下是要更改的.
引入node.js的核心模块.

const path = require('path') 
console.log(path.join(__dirname,'/build'))
module.exports = {
    mode: "production",
    entry: './src/js/main.js', // 入口文件
    output: {
        "path": path.join(__dirname,'/build'), // 决定出口文件在哪里
        "filename": "bundle.js" // 设置出口文件的名字。默认情况下,它叫main.js
    }
}

注意:如果path的路径不存在,启动后会自动创建这个文件.
修改打包模式,webpack.config.js中的mode项会默认设置为production ,这时将mode改为development(开发者选项) 开发者模式:不会将代码压缩混淆.
生产模式:会将代码压缩,混淆,以达到保护代码和缩小文件体积的作用.

打包时指定配置文件
自己创建一个webpack.dev.config.js文件(名字可以随便取,但是建议取的以提高识别度为准)在根目录下.
推荐使用自己创建的文件来设置打包.命令如下
npx webpack --comfig webpack.dev.config.js
注意:新建文件的中的代码,与之前webpack.config.js中的代码是相同.只是使用场景不一样,这里只需要将之前的文件复制贴到里面就可以了.

简化打包命令
非必要处理,但是想之前的文件夹的名字过长,将文件名之间衔接的 点 失误打成了逗号,这种细小报错可能一下找到,也可能找一上午都不一定找的到.因为不管如何检查内部代码,都不会有问题,但就是一直报错,所以简化一下打包命令对开发有一定好处.

可以在package.json中添加script命令来快速启动webpack.

"scripts": {
  "dev": "webpack --config webpack.dev.js",
  "build": "webpack",
  "test": "echo "Error: no test specified" && exit 1"
}

此时运用npm run build , npm run dev就可以了.