【发布时间】:2016-06-29 07:46:31
【问题描述】:
我在 angular2 (typescript) 中使用 SaxParser (sax.js)。
设置类似于Stackoverflow: how to import sax parser into angular2 using typescript :
systemjs.config.js:
...
var map = {
...
'sax': 'node_modules/sax'
};
var packages = {
...
'sax': { defaultExtension: 'js' }
};
...
var config = {
map: map,
...
}
System.config(config);
...
在我的index.html 中我已经包含了
<script src="node_modules/sax/lib/sax.js"></script>
现在我已经创建了 saxParser.ts:
import { SAXParser } from 'sax';
export class SaxParser {
parser;
options = {
lowercase: true,
normalize: true,
xmlns: true,
position: true,
}
constructor() {
this.parser = new SAXParser(true, this.options);
}
}
在我的服务中使用它,例如:
someFunction() {
...
let parser = new SaxParser();
...
}
现在我收到以下错误:
错误:SyntaxError: Unexpected token http://127.0.0.1:37420/app/saxParser/saxParser.js:2:13) 在评估 (http://127.0.0.1:37420/app/saxParser/saxParser.js:17:4) 在评估 (http://127.0.0.1:37420/app/saxParser/saxParser.js:18:3) 评估http://127.0.0.1:37420/node_modules/sax 评估http://127.0.0.1:37420/app/saxParser/saxParser.js 评估http://127.0.0.1:37420/app/services/parseXml.service.js 评估http://127.0.0.1:37420/app/services/parseXml.service.spec.js 加载错误http://127.0.0.1:37420/app/services/parseXml.service.spec.jsZoneDelegate.invoke@zone.js:323Zone.run@zone.js:216(匿名函数)@zone.js:571ZoneDelegate.invokeTask@zone.js:356Zone.runTask@zone.js:256drainMicroTaskQueue@zone.js: 474ZoneTask.invoke@zone.js:426
抛出此错误的代码行是:
var sax_1 = require('sax');
我不确定这是导入问题还是其他问题(因为意外的 < )......有谁知道这个错误?又该如何解决呢?
谢谢!
【问题讨论】:
-
///
在 boot .ts 中添加这个并尝试 -
@mayur 什么?你在哪里托管/开发这个?在 linux/mac 上?
-
没有
*.d.ts,只有sax.js,它似乎拥有所需的一切。我的main.ts中的///<reference path="../node_modules/sax/lib/sax.js"/>也出现同样的错误。 -
为 TypeScript 编译器添加参考提示肯定无助于在浏览器中执行 JS。您在需要 JS 文件时得到一个“