Webpack正则表达式测试匹配* .ts但不符合* .d.ts

时间:2017-04-19 08:34:06

标签: regex webpack aurelia ts-loader

我正在使用Webpack(2.3.3)在TS中构建我的Aurelia应用程序。但是,由于我在AureliaPlugin(2.0.0-rc.2)中使用includeAll选项,因此ts-loader(2.0.3)会对没有导出任何输出的d.ts文件发出嘘声。

这是我的ts文件规则:{ test: /\.ts$/, include: /ClientApp/, use: "ts-loader" }

我需要更改测试值,使其匹配名为* .ts的文件,但* .d.ts除外。你能帮帮我吗?

注意:我看到已经存在类似的正则表达式问题但是那个问题对我不起作用。

1 个答案:

答案 0 :(得分:7)

最后匹配字符串searchable activity而不是.ts的正则表达式是

.d.ts

查看regex demo。它是一个POSIX样式表达式,可以与任何正则表达式引擎一起使用。

<强>详情

  • /(^.?|\.[^d]|[^.]d|[^.][^d])\.ts$/ - 以下任何一项:
    • (^.?|\.[^d]|[^.]d|[^.][^d]) - 字符串+任意可选字符
    • 的开头
    • ^.? - 一个点和任何字符\.[^d]
    • d - 除[^.]d.
    • 之外的任何字符
    • d - 除[^.][^d]之外的任何字符,然后是.之外的任何字符(这样,我们匹配d以外的所有字符)
  • .d - 一个文字点
  • \. - ts$位于字符串末尾。

或者,使用基于先行的解决方案:

ts

请参阅another demo

<强>详情:

  • /^(?!.*\.d\.ts$).*\.ts$/ - 字符串开头
  • ^ - 字符串不能以(?!.*\.d\.ts$)
  • 结尾
  • .d.ts - 任何0+字符
  • .* - \.ts$位于字符串的末尾。

但是,您可以探索this SO thread中描述的其他选项。