未定义Angular 2.2.0组件相对路径(SystemJS)模块

时间:2016-11-22 03:01:11

标签: angular typescript angular2-template

我尝试将组件相对模板URL作为此

dialog.component.ts

@Component({
    moduleId: module.id,
    selector: 'modal-confirm',
    templateUrl: 'dialog.component.html',
    styleUrls:  ['dialog.component.css']
})

tsconfig.json

  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
     ....
  },

systemjs.config.js

typescriptOptions: {
  emitDecoratorMetadata: true,
  experimentalDecorators: true,
  module: "commonjs",
},

使用JiT,我得到了

Error: (SystemJS) module is not defined
ReferenceError: module is not defined at eval (http://localhost:3000/app/shared/services/dialog.component.ts!transpiled:104:35)

点击链接,它就在这一行

moduleId: module.id,

我错过了什么?

更新 我实际上收到的错误比上面提到的更多。在许多情况下,AoT需要更严格的代码来传递类型检查器。它比我想象的要复杂得多。在JiT模式下有效的方法可能无法在AoT模式下工作。我会再等3-6个月看看AoT编译器如何改进。

2 个答案:

答案 0 :(得分:0)

是。

如果您使用 dist 文件夹,请确保将所有必需文件(例如.css, .js)复制到与默认目录结构相同的dist文件夹(与运行<之前的目录结构相同) strong> gulp / grunt 任务

答案 1 :(得分:0)

这是解决方案

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} example.com
RewriteCond %{REQUEST_URI} !\.xml$
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}