从Webpack 2中的编译中排除入口点

时间:2017-05-30 08:13:01

标签: javascript svg webpack webpack-2

在我的webpack.config.js文件中,我有几个js和svg入口点:

entry: {
        scripts: './src/js/app.js',
        vendor: ['vue', 'axios'],
        svg: glob.sync('./src/img/svg/*.svg')
},

对于我的svg,我正在使用sprite loader:

module: {
    rules: [
        ...
        {
            test: /\.svg$/,
            use: [
                {
                    loader: 'svg-sprite-loader',
                    // include: path.resolve('./src/img/svg'),
                    options: {
                        extract: true,
                        spriteFilename: 'img/sprite.svg'
                    }
                }
            ],
        }
    ]
},

但问题是当我在我的js文件夹中编译时会渲染svg.js文件。我怎样才能使webpack工作,svg.js不会被渲染。

1 个答案:

答案 0 :(得分:2)

在您的webpack配置中添加一个微型插件:

module.exports = {
  plugins: [
    {
      apply: (compiler) => {
        compiler.plugin('emit', (compilation, callback) => {
          delete compilation.assets['svg.js'];
          callback();
        });
      }
    }
  ]
};