1.1. 安装
npm i bundle-loader --save
1.2. 用法
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.bundle\.js$/,
use: 'bundle-loader'
}
]
}
}
当需要这个bundle,请求这个chunk
file.js
import bundle from './file.bundle.js';
等待chunk可用(并获得导出),您需要异步等待它。
bundle((file) => {
// 就像文件被require一样使用它。
const file = require('./file.js')
});
包装require('file.js')
在require.ensure
块中。
可以添加多个回调。他们将按照添加的顺序被执行。
bundle(callbackTwo)
bundle(callbackThree)
如果在加载了依赖项之后添加了一个回调,那么将立即调用它。
1.3. 选项
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
lazy |
{Boolean} |
false |
异步加载导入的包 |
name |
{String} |
[id].[name] |
为导入的包配置一个自定义的文件名 |
1.3.1. lazy
当require bundle-loader
时,这个文件将被请求。如果想要懒加载它,使用:
webpack.config.js
{
loader: 'bundle-loader',
options: {
lazy: true
}
}
import bundle from './file.bundle.js'
bundle((file) => {...})
[info] 在调用函数之前,chunk不会被请求。
1.3.2. name
使用name
选项参数为bundle设置名字。
参见 文档.
webpack.config.js
{
loader: 'bundle-loader',
options: {
name: '[name]'
}
}
[warning] 警告:
loader创建chunk,会根据
output.chunkFilename
规则对它命名, 默认为[id].[name]
。 这里的[name]
对应于name
选项参数中设置的chunk名。
1.4. 示例
import bundle from './file.bundle.js'
webpack.config.js
module.exports = {
entry: {
index: './App.js'
},
output: {
path: path.resolve(__dirname, 'dest'),
filename: '[name].js',
// 或者其他格式
chunkFilename: '[name].[id].js',
},
module: {
rules: [
{
test: /\.bundle\.js$/,
use: {
loader: 'bundle-loader',
options: {
name: 'my-chunk'
}
}
}
]
}
}
普通的chunk将使用上面的filename
规则显示,并根据它们的[chunkname]
来命名。
但是,来自bundle-loader
的chunk,将会使用chunkFilename
规则加载,所以示例文件将分别生成my-chunk.1.js
和file-2.js
。
由于在bundle选项参数中添加[hash]
不能正确工作,您还可以使用chunkFilename
来为文件名添加哈希值。
1.5. 维护者
![]() Juho Vepsäläinen |
![]() Joshua Wiens |
![]() Michael Ciniawsky |
![]() Alexander Krasnoyarov |