将加载程序仅应用于webpack中的一个文件

时间:2018-01-25 22:14:28

标签: javascript webpack gulp

我是webpack的新手。我一直在使用gulp直到现在并尝试迁移到webpack。

在我的 .gulpfile 中我有:

var preProcess = require('gulp-preprocess');

gulp.src('app/config/app.constants.js')
.pipe(preProcess({
  context: {
    NODE_ENV: options.env
  }
}))

我在 app / config / app.constants.js 中有以下几行需要在生产中删除:

//@if NODE_ENV='development'
AppConstants.api = 'https://localhost:333/api';
AppConstants.webRoot = 'http://localhost:222';
//@endif

我想在 wepack.config.js

中完成此任务
if (!isDev) {
    config.module.rules.push([
        {
            test: ???, // Can't figure out what to put here
            exclude: /(node_modules|bower_components|\.spec\.js)/,
            use: [
                {
                    loader: 'webpack-strip-block',
                    options: {
                        start: '@if NODE_ENV='development'',
                        end: '@endif'
                    }
                }]
        }
    ])
}

两个问题:如何测试单个文件?这是替换gulp-preprocess的正确方法吗?

1 个答案:

答案 0 :(得分:0)

要将加载程序应用于单个文件,请使用include代替exclude。这是白名单而不是黑名单。您根本不需要使用test。例如......

{
    include: 'path/to/your/file',
    use: [{
        loader: 'webpack-strip-block',
        options: {
            start: '@if NODE_ENV='development'',
            end: '@endif'
        }
   }]
}