webpack单独打包css文件的问题

index入口的index.js中require了reset.css和index.css,打包结果是,两者被合并为一个css文件,叫index.css,我想知道如何将他们的两次require单独打包,而不是合在一起

clipboard.png

clipboard.png

阅读 4k
2 个回答

webpack 打包 entry 只支持 js 文件,所以如果想导出两个 css 文件需要定义两个 entry。但是有没有更好的方式呢?其实很简单:写个简单的插件就可以使 entry 支持 css 文件了。我们就是这么做的:

CssEntryPlugin.js

class CssEntryPlugin {
  apply (compiler) {
    compiler.plugin('emit', (compilation, callback) => {
      compilation.chunks.filter(chunk => {
        return /\.css$/i.test(chunk.name);
      }).forEach(chunk => {
        // remove unused js files
        chunk.files = chunk.files.filter(file => {
          const isJS = /\.js(|\.map)$/i.test(file);
          if (isJS) {
            delete compilation.assets[file];
          }
          return isJS;
        });
      });
      callback();
    });
  }
}

详情可以参考这个 Demo:https://github.com/d-band/doo...

npm i dool -g
touch index.js
touch index.less
echo "{ files: ['index.js', 'index.less'] }" > .doolrc

dool build
dool server
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题