webpack 命令默认会去根目录查找webpack.config.js配置文件,如果没有,则会使用webpack默认的零配置打包规则进行打包,默认的零配置打包规则主要包括下面这几点:
-
默认入口文件:Webpack 默认会将 ./src/index.js 作为入口文件进行打包。
-
默认输出文件:Webpack 默认会将打包后的文件输出到 ./dist/main.js。
-
默认加载器:Webpack 默认只能处理 JavaScript 和 JSON 文件,对于其他类型的文件(如 CSS、图片等),需要使用对应的加载器(loader)进行处理。
-
默认插件:Webpack 默认没有启用任何插件,如果需要使用插件(如进行代码压缩、生成 source map 等),需要手动配置。
-
默认模式:Webpack 默认的模式是 production,在这种模式下,Webpack 会自动进行代码压缩和优化。如果需要在开发环境下使用 Webpack,可以将模式设置为 development。
所以,在前面的博客中,我们初始化了一个空的项目,当执行webpack打包时,需要先手动在src目录下创建一个index.js文件,这样在执行npm run build后,在dist的目录下生成了一个main.js文件,这个也验证了上面零配置打包规则的第1点和第2点。
在根目录下,新建webpack.config.js文件,编辑如下内容:
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js'
}
}
上述配置,指定了入口文件,同时指定了dist文件夹下输出的文件名为bundle.js,执行npm run build,会看到在dist文件下多了一个bundle.js文件
因为我们之前在没有新增webpack.config.js文件之前,执行过npm run build,所以dist目录下也存在之前按照零配置规则生成的main.js文件,我们需要在webpack每次打包前,都清空下dist,再生成打包后的文件,只需要在output的配置中新增一行clean: true即可
const path = require('path');
module.exports = {
entry: './src/index.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'bundle.js',
clean: true,
}
}