1.webpack.config.js
上文中提到在打包js的时候使用的是命令:webpack ./src/main.js ./dist/bundle.js
这样在打包的时候是非常繁琐的,如果通过配置的方式将输入和输出文件配置好,实现自动化的打包,就非常方便了。
通过webpack.config.js这个配置文件,将输入文件路径,输出文件路径以参数的形式配置好,打包的时候直接输入webpack命令,就可以实现打包,省略了输入输出路径。
webpack.config.js配置如下:
const path = require('path');
module.exports={
//打包的入口,可以是字符串,数组,对象,可以是相对路径
entry:'./src/main.js',
//出口通常为一个对象,至少要包含path和filename两个属性,必须是绝对路径
output:{
path:path.resolve(__dirname,'dist'),
filename:'bundle.js'
}
};
entry是入口路径,可以是相对路径。
output必须是绝对路径,因此,需要引入node的path。调用path的resolve方法,__dirname获取的是当前webpack.config.js的路径,dist是拼接的输出路径,bundle.js是输出文件名。
2.package.json配置
package.json是通过npm init命令生成的。
命令执行后,根据指引输入package name等信息,执行完成后,生成package.json文件,如下所示:
{
"name": "wptest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
如果package.json中有其他的依赖包,可以通过npm install命令来安装相关依赖。
其中scripts标签中配置的是可执行的脚本,在其中添加"build":"webpack"
{
"name": "wptest",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build":"webpack"
},
"author": "",
"license": "ISC"
}
打包的时候通过npm run build命令与直接通过webpack命令效果是一样的。
3.局部webpack的安装
通过npm install webpack -g命令安装的是全局的webpack,如果在某一个项目中用到的webpack版本和全局的webpack版本不一致,可以安装局部的webpack。
切换到项目路径,执行如下命令:npm install webpack@3.6.0 --save-dev
--save-dev表示为开发版本
局部webpack安装完成后,运行npm run bulid命令,将优先使用局部的webpack,没有局部的webpack再使用全局的。