3

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

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

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

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

4

1 回答 1

10

一个匹配字符串.ts结尾但不是的正则表达式.d.ts

/(^.?|\.[^d]|[^.]d|[^.][^d])\.ts$/

查看正则表达式演示。这是一个 POSIX 风格的表达式,可以与任何正则表达式引擎一起使用。

细节

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

或者,使用基于前瞻的解决方案:

/^(?!.*\.d\.ts$).*\.ts$/

查看另一个演示

详情

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

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

于 2017-04-19T10:33:48.177 回答