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

Has*_*san 2 regex webpack aurelia ts-loader

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

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

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

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

Wik*_*żew 8

与相匹配的字符串一个正则表达式.ts的结束,但并不.d.ts就是

/(^.?|\.[^d]|[^.]d|[^.][^d])\.ts$/
Run Code Online (Sandbox Code Playgroud)

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

细节

  • (^.?|\.[^d]|[^.]d|[^.][^d]) - 任何一个:
    • ^.? - 字符串+任何可选字符的开头
    • \.[^d] - 一个点和任何炭,但 d
    • [^.]d- 任何炭,但.d
    • [^.][^d]- 任何炭,但.然后任何炭,但d(这样,我们匹配除了.d)
  • \. - 一个字面点
  • ts$- ts在字符串的末尾.

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

/^(?!.*\.d\.ts$).*\.ts$/
Run Code Online (Sandbox Code Playgroud)

另一个演示

细节:

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

但是,您可以探索此SO线程中描述的另一个选项.


归档时间:

查看次数:

1165 次

最近记录:

8 年,7 月 前