【发布时间】:2016-05-16 13:47:47
【问题描述】:
在 angular2 5 分钟教程中,他们使用“系统”作为 tsconfig 中的模块。我有 systemjs 作为 node_module 但是当尝试启动我的服务器时,我从编译 js 文件的第一行得到System is not defined,如下所示:
System.register(['http', 'express', './config/index', 'path'], function(exports_1) {
为什么System 未定义,即使我将它作为节点依赖项?
我试图将其更改为commonjs,然后编译的js看起来要简单得多。但后来我在 Angular 应用程序中遇到错误。
为了让它与 SystemJs 一起工作,我缺少什么?
编辑
我认为我不善于解释我的问题。当从将模块导入我的 server.ts 文件“javascript 样式”(var http = require('http');)更改为“打字稿样式”(import * as http from 'http';)时,我开始收到上面指定的错误。执行 javascript 样式时,编译后的 js 看起来与 ts (var http = require('http');) 相同,但是执行“typescript 样式”时,它会使用使用 System 导入的模块进行编译(上面指定的代码行)。所以我在尝试启动节点服务器而不是在浏览器中时遇到了这个错误。
我尝试将 tsconfig.json 中的 compilerOption "module" 更改为 "commonjs" 而不是 "system",这样做会导致浏览器出现错误(this error,只有解决方案似乎不适合)一些奇怪的原因所以我想我会尝试使用“系统”。但后来我遇到了没有定义System 的问题。那么如何在启动节点服务器时访问 System 呢?
【问题讨论】:
-
您是否已将其包含在您的 index.html 中?
-
是的,但我在尝试运行节点服务器时收到此错误
标签: node.js module typescript angular systemjs