我正在使用@ ngtools / webpack来构建角度混合应用程序的AoT。我在开发人员构建中使用angular2-template-loader,但组件的行为就像templateUrl键未更改,浏览器尝试从开发人员Web服务器延迟加载html。
什么会导致angular2-template-loader无法转换templateUrl键并且也不会抱怨什么?
// Rather than this:
// import html from './something.component.html';
// use templateUrl to make AoT compiler happy and use angular2-template-loader
// to make dev build revert to imported templates.
@Component({selector: something, templateUrl: './something.component.html'})
AoT构建会愉快地转换templateUrl密钥,并根据需要从分发包中提供模板。
有此问题的组件正在降级并注册为angularjs应用程序模块上的指令,并已在angular 7.1.4功能模块中声明。拥有模板的angularjs组件,其中使用
声明有问题的组件<something></something>
正在两个版本中成功导入父模板的html。
import parent_template from './parent.html';
const parentComponent = {
controller: ParentController,
controllerAs: "vm",
template: parent_template,
};
ajsFeatureModule.component('parentComponent', parentComponent);
这是带有ts loader规则和html loader规则的webpack开发环境配置部分。 html规则是@ rails / webpacker中的默认配置。
{ test: /\.(ts|tsx)?(\.erb)?$/,
use: [ 'ts-loader', 'angular2-template-loader' ],
exclude: [ /node_modules/ ] },
{ test: /\.html$/,
use:
[ { loader: 'html-loader',
options:
{ minimize: true,
removeAttributeQuotes: false,
caseSensitive: true,
customAttrSurround: [ [ /#/, /(?:)/ ], [ /\*/, /(?:)/ ], [ /\[?\(?/, /(?:)/ ] ],
customAttrAssign: [ /\)?\]?=/ ] } } ] },
@ ntools / webpack是v7.1.4 webpack v4.27.1 angular2-template-loader v0.6.2