Javascript 网页包-忽略require()中的加载程序?
我有一个TypeScript项目,我与Webpack捆绑。这是我正在编写的一个开源lib的demo/docs应用程序,所以我想在文档中展示一些源代码 在我的网页配置中,我有:Javascript 网页包-忽略require()中的加载程序?,javascript,typescript,webpack,Javascript,Typescript,Webpack,我有一个TypeScript项目,我与Webpack捆绑。这是我正在编写的一个开源lib的demo/docs应用程序,所以我想在文档中展示一些源代码 在我的网页配置中,我有: loaders: [ { test: /\.ts$/, loader: 'ts'}, { test: /\.css$/, loader: 'style!raw' }, { test: /\.html/, loader: 'html' } ] 它可以很好地传输和绑定我的TypeScript文件。在我的
loaders: [
{ test: /\.ts$/, loader: 'ts'},
{ test: /\.css$/, loader: 'style!raw' },
{ test: /\.html/, loader: 'html' }
]
它可以很好地传输和绑定我的TypeScript文件。在我的一个应用程序组件中,我执行以下操作:
basicCodeT: string = require('./basic-example-cmp.html');
basicCodeC: string = require('!raw!./basic-example-cmp.ts');
将源代码加载到一个字符串中,然后在文档中显示该字符串
正如您所看到的,有一个前导的我发现第二行中的code>似乎“绕过”了配置中的默认加载程序,并将原始类型脚本作为字符串加载
在我的开发构建中,这是可行的,但当我使用UglifyJsPlugin和OccurrenceOrderPlugin进行“生产”构建时,我会得到以下输出:
ERROR in ./demo/src/basic-example-cmp.html
Module build failed:
@ ./demo/src/demo-app.ts 24:26-61
对应于源代码中我试图要求原始类型脚本的行
因此,我希望将基本示例cmp.ts
作为应用程序构建的一部分通过ts编译器,但也希望将其作为应用程序中的原始文本
我的问题是:在特定的需求情况下,有没有合适的方法告诉webpack“忽略”加载器?
是我编写的方法代码>正确吗?是黑客吗?
更新
事实证明,我的问题只是由于Webpack处理HTML模板的方式-它不喜欢Angular 2模板语法,请参阅:
有没有合适的方法告诉webpack在特定情况下“忽略”加载程序
对。根据需要更新{test:/\.ts$/,loader:'ts'},
中的测试 据我所知,这是您能够以两种不同方式加载文件的唯一方法。我认为问题在于,在生产构建中,您的路径是不同的
我建议使用--display error details
标志运行webpack,以获取有关失败原因的更多信息。您可以在webpack配置文件中添加两个感叹号以忽略加载程序
!!未经加工的file.ts
一个感叹号只会禁用预加载程序
您好,我应该澄清一下,我确实希望将基本示例cmp.ts
作为我的应用程序的一部分进行传输,但我也希望将其作为字符串加载到同一个应用程序中,这次不传输。我会更新这个问题,让它更清楚。谢谢。好吧,那么问题可能是你所说的其他问题——我会看看启用该标志后我能发现什么。这正是我想要的答案,谢谢。我仍然觉得网页文档很难导航。网页很容易配置:P