可以用html-webpack-plugin在头上写一些块,在身体里写一些块吗?
这是我的html-webpack-插件的配置:
var HtmlWebpackPluginConfigIndex = {
template: path.join(__dirname, 'src/core/server/views', 'index.dust'),
filename: 'core/server/views/index.dust',
hash: true,
chunksSortMode: 'none'
// chunks: ['core/public/js/vendor']
};当我在此配置中使用copy,但对已更改的块使用时:
var HtmlWebpackPluginConfigIndex = {
template: path.join(__dirname, 'src/core/server/views', 'index.dust'),
filename: 'core/server/views/index.dust',
hash: true,
inject: 'head',
chunksSortMode: 'none'
chunks: ['core/public/js/vendor']
};
var HtmlWebpackPluginConfigIndex2 = {
template: path.join(__dirname, 'src/core/server/views', 'index.dust'),
filename: 'core/server/views/index.dust',
hash: true,
inject: 'body',
chunksSortMode: 'none'
chunks: ['core/public/js/app']
};
....
new HtmlWebpackPlugin(HtmlWebpackPluginConfigIndex);
new HtmlWebpackPlugin(HtmlWebpackPluginConfigIndex2);Webpack只最后申请块为html-webpack-插件。
发布于 2018-02-14 22:34:26
您可以尝试分叉项目,然后篡改代码,如下所示:
html-webpack-plugin index.js:
HtmlWebpackPlugin.prototype.generateAssetTags = function (assets) {
...
// Add scripts to body or head
// <<< You would add this bit >>>
if (!! this.options.headScripts) {
var hScripts = this.options.headScripts;
head = head.concat(scripts.filter((s) => {
var src = s.attributes.src;
return hScripts.indexOf(src) > -1;
}));
body = body.concat(scripts.filter((s) => {
var src = s.attributes.src;
return hScripts.indexOf(src) < 0;
}));
// <<< to here (and the following "else" in front of the if) >>>
else if (this.options.inject === 'head') {
...
}然后在插件定义中添加一个headScripts选项:
plugins: [
new HTMLWebpackPlugin({
template: path.join(__dirname, 'src','core','server','views', 'index.dust'),
filename: 'core/server/views/index.dust',
headScripts: ['vendor.bundle.js'] // or whatever your output filename is
})
]https://stackoverflow.com/questions/41353585
复制相似问题