angular2-template-loader不会在降级的组件中更改@Component templateUrl选项

时间:2019-01-06 05:19:19

标签: webpack angular2-template-loader

我正在使用@ 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

0 个答案:

没有答案