我最近将一个 AngularJS (v1) 项目从 Webpack v1 更新到 v2,将 TypeScript v1 更新到 v2。该项目使用 pug 文件来生成视图,并且在升级之前没有问题。
自升级以来,控制器中引用的 pug 文件不再由 Webpack 处理。在任何路线中指定的 Pug 文件仍然可以正常工作。
我webpack.common.config.js
的哈巴狗配置了哈巴狗装载机:
module: {
rules: [
{
test: /\.pug$/,
use: ['pug-loader']
},
]
}
Webpack 不再处理的 pug 文件示例。
this.$mdDialog.show({
clickOutsideToClose: true,
template: require('../components/ui/client.pug'),
controller: ['$mdDialog', '$state', '$rootScope', 'clientService', ProfilePopupController],
controllerAs: 'dm',
bindToController: true,
locals: { localData: popupData }
})
我试图通过使用显式引用 pug-loader
template: require('pug-loader!../components/ui/client.pug');
这与Github pug-loader 存储库中的 pug-loader 文档中的示例相匹配
template = require("pug-loader!./file.pug");
这给了我错误:
ERROR in ./~/pug-loader!./src/app/components/ui/client.pug
Module build failed: Error: C:\Users\User\git\myapp\node_modules\pug-loader\index.js!C:\git\myapp\src\app\components\ui\client.pug:4:1
我有一个带有显示问题的小应用程序的 Github。它位于MyApp Repository。如果您构建此应用程序,您可以看到 main.controller.ts 中引用的模板 pug 文件aboutPopup()
显示了部分处理的代码。构建后,转到 Main 并单击 About 按钮。