GitHub 完整配置文件地址: https://github.com/yhtx1997/webpack4-Instance javascript
因为篇幅过长分三次发布,建议按顺序看
[ webpack4 ] 配置属于本身的打包系统教程(一)—— 基础配置篇
[ webpack4 ] 配置属于本身的打包系统教程(二)—— 资源配置篇
[ webpack4 ] 配置属于本身的打包系统教程(最终篇)—— 环境配置篇html
主要内容java
安装 webpack 前请确保已安装 nodejs 和 npmnode
npm init -y
这里的init表示初始化一个 npm 项目, -y 表示所有选 yes,不加的话会提示输入一些项目信息,好比项目名,版本号,做者...webpack
npm install webpack webpack-cli webpack-dev-server -D
这实际上是一条合并的命令,拆开就是git
npm install webpack -D npm install webpack-cli -D npm install webpack-dev-server -D
现阶段的目标是让它能运行起来
如今目录下应该有一个文件夹,两个 .josn 文件es6
官方推荐移除文件中的入口配置,这样能够防止意外发布你的代码。github
"main": "index.js"
并加上私有属性配置web
"private": true
运行webpack 能够用在命令行输入 npx webpack
可是这样的运行方式在配置了开发环境和生产环境时,再运行须要写不少参数
因此添加一个 npm 脚本,以后运行 输入 npm run test 便可,有参数后在后边追加便可算法
"test": "webpack"
最后看起来像这样
在 webpack 4 中,能够无须任何配置使用,作完上边的操做后能够在命令行输入 npm run test 运行 webpack(这里的 test 是在上边 scripts 里本身定义的),可是会显示这样的结果。
这是由于入口文件不存在,webpack 默认是将当前目录下的 ./src/index.js 当作要打包的文件(入口),新建一下 src 目录和 index.js 文件,就能够正常了。
这时会生成一个 dist 目录以及目录里有一个 main.js,这是默认的打包好的文件及目录(出口),这样一个 webpack 算是初始化完成了。
注:
在上面也说了 webpack4 如今能够无需使用任何配置文件就可使用,可是有些东西仍是弄成本身喜欢的比较好
在当前目录下新建一个 webpack.config.js 文件,并写入代码
const path = require('path');//[1] module.exports = { //[2] };
webpack --config my.config.js
为了能证实入口确实改了有效果,我将 ./src/index.js 的文件名改成 2048.js,并放到./src/js/2048.js ;
并修改代码
const path = require('path'); module.exports = { entry: "./src/2048.js"//add };
在不加上面代码时会报以前的找不到入口的错误,加了之后会显示正常输出了,而且 ./dis 下会多一个 2048.js 的文件,
entry 不光能赋值绝对路径的字符串,还能赋值多个路径的数组或对象
entry: './src/2048.js'//单入口 字符串传参 entry: ['./src/js/2048.js','./src/js/1024.js','./src/js/512.js']//多入口 数组传参 entry: {//多入口 对象传参 2048: './src/js/2048.js', 1024: './src/js/1024.js', 512: './src/js/512.js' }
出口跟入口不太同样,入口能够有不少,可是只有一个输出配置。
output: { filename: '2048.js', path: 'C:/Users/GengShaojing/Desktop/2048/dist' }
output: { filename: '[name].js',//[1] path: path.resolve(__dirname, 'dist')//[2] }
output: { filename: "[name].[chunkhash].js", path: path.resolve(__dirname, 'dist') }
filename 支持如下几个属性,且能够共存