Reg ex 忽略 .spec.ts 文件用于 AOT angular 5 build

Reg ex to ignore .spec.ts files for AOT angular 5 build

Angular 5 ngtools 没有忽略我的生产构建中的所有“.spec.ts”文件。

我如何排除 **.spec.ts* 但保留任何其他 .ts ?

/(?:.ngfactory.js|.ngstyle.js|.ts)$/

来自我的webpack.prod.config.js...

module.exports = merge(baseConfig, {
    devtool: "source-map",
     module: {
         rules:
         [
            {   // AOT mode support for production
                test: /(?:\.ngfactory\.js|\.ngstyle\.js|\.ts)$/,
                loader: '@ngtools/webpack'
            }
        ]
    },

Click here on link example of image to regex101.com

如果您打算允许具有 .ngfactory.js.ngstyle.js.ts 扩展名的文件,这意味着您需要匹配以这些扩展名结尾且不以 [=14 结尾的任何字符串=].

使用

/^(?!.*\.spec\.ts$).*(?:\.ngfactory\.js|\.ngstyle\.js|\.ts)$/

参见regex demo

详情

  • ^ - 字符串开头
  • (?!.*\.spec\.ts$) - 如果除换行字符外还有任何 0+ 个字符,尽可能多 (.*) 然后 .spec.ts 在当前位置右侧的字符串结尾 ($)
  • .* - 除换行字符外的任何 0+ 个字符,尽可能多
  • (?:\.ngfactory\.js|\.ngstyle\.js|\.ts) - .ngfactory.js.ngstyle.js.ts
  • $ - 字符串结尾。