webpack async加载器优先顺序



我想在webpack编译过程中替换每种类型的一些代码。现在我有这样的东西:

module: {
        rules: [
            {
                test: /.ts$/,
                enforce: 'pre',
                loader: [
                    {
                        "loader": "test-loader"
                    }
                ]
            },
            {
                test: /.ts$/,
                loader: [
                    {
                        "loader": "@ngtools/webpack",
                        "options": {
                            "tsConfigPath": "tsconfig.json",
                        }
                    }
                ]
            }
        ]
    },

和我的 test-loader 看起来像这样:

module.exports = function (source, map) {
  var callback = this.async();
  source = myReplaceFunction(source)
  this.cacheable && this.cacheable();
  callback(null, source, map);
};

根据这个问题,应为每个打字稿文件调用我的加载程序( test-loader ((并且是(。下一个Loader(@ngtools/webpack (应在修改后( test-loader (打字稿文件进行操作,但不是,为什么那是>?

我的配置:

  • webpack v3.10.0
  • typescript 2.6.2
  • 节点 v9.4.0
  • @ngtools/webpack v1.10.0-beta.3(1.6.4的情况相同(

没有enforce: 'pre'相同的效果。我正在尝试这样做,但是更简单。

如果您检查 @ngtools/webpack(node_modules/@ngtools/webpack/src/loader.js(的源,您会注意到加载程序dome not 从上一个加载程序中获取任何输入。取而代之的是,它抓住了您的源打字稿文件的文件名const sourceFileName = this.resourcePath;,并将其转换为JavaScript。因此,Angular完全忽略了您注入的任何预载器,并直接从源中抓取。

希望它有帮助

相关内容

  • 没有找到相关文章

最新更新