html-webpack-plugin按需加载的jscss也会被提取出来吗

html-css0141

html-webpack-plugin按需加载的jscss也会被提取出来吗,第1张

//引入想要的css文件

var style = require('style/useable!css!./file.css')

//激活,也就是在dom中添加style标签

style.use()

//销毁,也就是不想用时,可以从dom中把style标签再删掉

style.unuse()// = style.unref()

至于你说“没有提取出来”,那是因为你用的是style-loader,如果真想提取文件,应该用extract-text-webpack-plugin。

最后关于javascript部分,script标签从dom中删除这件事,其实意义不大,这么说吧,对你来说,最想把她从dom中移除的原因是什么?因为你的用户会检查你的dom?还是因为你觉得script标签杵在那里影响了你的心情?

实际上,当script标签添加之后,脚本内容开始下载/解析,甚至执行,该被运行时记录的变量都已经记录了。如果真有变量需要销毁,这也不是c,js有自己的垃圾回收机制,只要你没写出内存泄漏的代码,内存中的废弃物是会自动销毁的;换句话说,如果你代码写的倒出是问题,就算手动删了那个script标签又如何?照样内存泄漏!

补充:

如果你想提取.vue文件里的style css内容,那你的loader配置也没配对地方,应该是在vue属性里配置:

vue: {

loaders: {

js: 'babel-loader?presets[]=es2015&plugins[]=transform-runtime&comments=false',

css: ExtractTextPlugin.extract(['css-loader'])

}

},

plugins: [

new ExtractTextPlugin('output.css')

]

按需组件引入吧,这样会减少不必要的css,当然你每个组件的css要独立出来,而且如果使用webpack 的vue-loader处理 即使重复引用同一个组件css也是同用一份,不会额外的复制多个. CSS规则的前面;@import规则条件规则组中。