我正在尝试编写一个简单的Angular 2应用程序,它使用CommonJS Node模块(Node Yelp)。默认情况下,Angular 2使用SystemJS,它可以加载不同的模块格式。Consume CommonJS模块Angular 2
我已经尝试了几种不同的SystemJS配置和import语句,但他们都似乎与
SyntaxError: Unexpected token <(…)
目前结束,我SystemJS配置看起来像
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
},
map: {
yelp: 'node_modules/yelp'
}
});
System.import('app/main')
.then(null, console.error.bind(console));
和我的简单AppComponent.ts
import {Component} from 'angular2/core';
import Yelp from 'yelp';
@Component({
selector: 'app',
templateUrl: '/app/app.component.html'
})
export class AppComponent {
constructor(yelp: Yelp) {
console.log(yelp);
}
}
我仍然试图包裹我的hea d围绕整个模块系统,所以我不确定要在这里更改什么。网上的任何结果似乎都过时了,或者与使用SystemJS加载CommonJS节点模块没有直接关系。
该错误通常是因为如果您的请求,服务器返回的index.html找不到路径...检查DevTools> Network并查看systemjs正在尝试加载的文件(路径)。 – Sasxa
@Sasxa啊,很好的电话。看来SystemJS没有正确地遍历包。它没有默认选择index.js,然后当我对它进行硬编码时,它不知道要在node_modules中查找包依赖关系。 –
试用['meta'](https://github.com/systemjs/systemjs/blob/master/docs/config-api.md#meta)选项,它支持通配符 – Sasxa