Webpack regex test that matches *.ts but not *.d.ts

后端 未结 1 1625
不思量自难忘°
不思量自难忘° 2020-12-04 02:39

I am using Webpack (2.3.3) to build my Aurelia app in TS. However, since I am using includeAll option for AureliaPlugin (2.0.0-rc.2), ts-loader (2.0.3) cries a

相关标签:
1条回答
  • 2020-12-04 03:33

    A regex that matches strings with .ts at the end but not .d.ts is

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

    See a regex demo. It is a POSIX style expression that will work with any regex engine.

    Details

    • (^.?|\.[^d]|[^.]d|[^.][^d]) - either of:
      • ^.? - start of string + any optional char
      • \.[^d] - a dot and any char but d
      • [^.]d - any char but . and d
      • [^.][^d] - any char but . and then any char but d (this way, we match all but .d)
    • \. - a literal dot
    • ts$ - ts at the end of string.

    Alternatively, use a lookahead based solution:

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

    See another demo

    Details:

    • ^ - start of string
    • (?!.*\.d\.ts$) - the string cannot end with .d.ts
    • .* - any 0+ chars up to the
    • \.ts$ - .ts at the end of the string.

    However, you might explore another option described in this SO thread.

    0 讨论(0)
提交回复
热议问题