webpack
Asset:这是一个普遍的术语,用于图片、字体、媒体,还有一些其他类型的文件,常用在网站和其他应用程序。这些文件通常最终在输出(output ) 中成为单个文件,但也可以通过一些东西内联,像 style-loader 或者 url-loader .
Bundle:由多个不同的模块生成,bundles 包含了早已经过加载和编译的最终源文件版本。
Chunk:这是 webpack 特定的术语被用在内部来管理 building 过程。bundle 由 chunk 组成,其中有几种类型(例如,入口 chunk(entry chunk) 和子 chunk(child chunk))。通常 chunk 会直接对应所输出的 bundle,但是有一些配置并不会产生一对一的关系。
loader:loader 让 webpack 能够去处理那些非 JavaScript 文件(webpack 自身只理解 JavaScript)。loader 可以将所有类型的文件转换为 webpack 能够处理的有效模块,然后你就可以利用 webpack 的打包能力,对它们进行处理。(本质上,webpack loader 将所有类型的文件,转换为应用程序的依赖图(和最终的 bundle)可以直接引用的模块。)
loader 支持链式传递。能够对资源使用流水线(pipeline)。一组链式的 loader 将按照相反的顺序执行。loader 链中的第一个 loader 返回值给下一个 loader。在最后一个 loader,返回 webpack 所预期的 JavaScript。
module.exports = {
context: path.resolve(__dirname, './src')// 绝对路径,默认当前执行路径。解析entry和loader时基于此路径
entry: { // 如果传入一个字符串或字符串数组,chunk 会被命名为 main。如果传入一个对象,则每个键(key)会是 chunk 的名称,该值描述了 chunk 的入口起点。
home: "./home.js",
about: "./about.js",
contact: "./contact.js"
},
output: {
filename: '[name].[chunkhash].js',
chunkFilename:'[id].js'// 决定非入口chunk的名称。比如异步加载模块 在未指定chunk name 时[name]占位符默认被替换为[id]
path: path.resolve(__dirname, 'dist'),
publicPath: '' // 默认所有资源的引用路径是以output目录为基准。此选项指定在浏览器中引用时,output目录对应的公开URL(相对路径会相对于HTML页面解析)。
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
}
},
{
test: /\.css$/,
use: [
{ loader: 'style-loader' },
{
loader: 'css-loader',
options: {
modules: true
}
}
]
}
]
},
plugins: [
]
}
Last updated
Was this helpful?