webpack2 vue 中的css 怎么抽取出来

 我来答
育知同创教育
2017-08-04 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
每个 entry 只能抽取对应的单个文件,可以加上 [name], [id] or [contenthash] 如:new ExtractTextPlugin('[name].css')。其实很多由 gulp 或 grunt 转到 webpack 的都会感觉抽取 css 很麻烦,不过官方都是建议这样在 entry 中依赖 css 然后用 ExtractTextPlugin 抽取出来。不过下面这个简单的 hack 可以让 webpack 支持 entry 是 css 文件的:
class CssEntryPlugin {
apply (compiler) {
compiler.plugin('emit', (compilation, callback) => {
compilation.chunks.filter(chunk => {
return /\.css$/i.test(chunk.name);
}).forEach(chunk => {
const oldName = chunk.name;
const newName = oldName.replace(/\.css$/i, '');

chunk.files = chunk.files.filter(file => {
const isCss = /\.css(|\.map)$/i.test(file);
if (!isCss) {
delete compilation.assets[file];
}
return isCss;
}).map(oldFile => {
// do not handle map file
if (/\.map$/i.test(oldFile)) return oldFile;

const newFile = oldFile.replace(oldName, newName);
// change css assets name
const tmp = compilation.assets[oldFile];
compilation.assets[newFile] = tmp;
delete compilation.assets[oldFile];
return newFile;
});
});
callback();
});
}
}

这样 entry 可以这么写:

{
entry: {
'index.css': './index.less'
}
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式