Webpack - 忽略require()中的加载器?

Mic*_*ley 5 javascript typescript webpack

我有一个TypeScript项目,我正在捆绑Webpack.它是我正在编写的开源库的demo/docs应用程序,所以我想将一些源代码显示为文档的一部分.

在我的webpack配置中,我有:

 loaders: [
   { test: /\.ts$/, loader: 'ts'},
   { test: /\.css$/, loader: 'style!raw' },
   { test: /\.html/, loader: 'html' }
 ]
Run Code Online (Sandbox Code Playgroud)

这适用于转换和捆绑我的TypeScript文件.在我的一个应用程序组件中,我这样做:

basicCodeT: string = require('./basic-example-cmp.html');
basicCodeC: string = require('!raw!./basic-example-cmp.ts');
Run Code Online (Sandbox Code Playgroud)

将源代码加载到我想要在文档中显示的字符串中.

正如您所看到的,!在第二行中有一个领先者,我发现它似乎从配置中"绕过"默认加载器并将原始TypeScript作为字符串加载.

在我的开发版中,这可行,但是当我使用UglifyJsPlugin和OccurrenceOrderPlugin进行"生产"构建时,我得到以下输出:

ERROR in ./demo/src/basic-example-cmp.html
Module build failed: 
@ ./demo/src/demo-app.ts 24:26-61
Run Code Online (Sandbox Code Playgroud)

这对应于我尝试要求原始TypeScript的源代码行.

所以,我想basic-example-cmp.ts通过TS编译器作为应用程序构建的一部分,但想要在应用程序中将其作为原始文本.

我的问题是:在特定的需求案例中,是否有正确的方法告诉webpack"忽略"加载器?

我的前置方式是!正确的吗?这是一个黑客?

更新

事实证明我的问题仅仅是由于Webpack处理HTML模板的方式 - 它不喜欢Angular 2模板语法,请参阅:https://github.com/webpack/webpack/issues/992

Kev*_*per 5

您可以在webpack配置文件中添加两个惊叹号以忽略加载程序

!!raw!file.ts

一声惊叹只会禁用预加载器!

https://webpack.js.org/concepts/loaders/#inline