【发布时间】:2016-12-07 20:00:50
【问题描述】:
我正在尝试在 Angular 2(带有 TypeScript 的 RC 1)Web 应用程序中使用 xml2js 作为 XML 解析器。但是我只得到一些错误,没有有效的解决方案。
这是我一步一步做的:
- 通过
npm install xml2js安装了xml2js - 根据 d.ts 文件通过
tsd install xml2js安装 - 包含指向我的 index.html 的脚本链接:
<script src="../node_modules/xml2js/lib/xml2js.js"></script> - 通过将
'xml2js': '../node_modules/xml2js'添加到映射并将'xml2js': { defaultExtension: 'js' }添加到包来配置 SystemJS - 通过
import {Parser} from 'xml2js';在我的组件中导入xml2js的解析器@ - 尝试在组件的构造函数中使用它:
var parser = new Parser(); var xml = "<root>Hello xml2js!</root>" parser.parseString(xml, function (err, result) { console.dir(result); });
这是浏览器控制台在打开包含该组件的网页时告诉我的信息:
module.js:440 未捕获的错误:找不到模块“sax”
和
GET file:///C:/xxx/source/node_modules/xml2js net::ERR_FILE_NOT_FOUND
还有
index.html:17 错误:错误:XHR 错误加载文件:///C:/xxx/source/node_modules/xml2js
在 ZoneDelegate.invokeTask (file:///C:/xxx/source/node_modules/zone.js/dist/zone.js:356:38)
在 Zone.runTask (file:///C:/xxx/source/node_modules/zone.js/dist/zone.js:256:48)
在 XMLHttpRequest.ZoneTask.invoke (file:///C:/xxx/source/node_modules/zone.js/dist/zone.js:423:34)
从 file:///C:/xxx/source/frontend/angular/components/mycomponent/mycomponent.js 加载 file:///C:/xxx/source/node_modules/xml2js 为“xml2js”时出错
“sax”位于node_modules/xml2js/node_modules/sax,通过 npm 安装。
安装外部库时我错过了什么?有没有一种“更好”的方式来使用带有 Angular 2 和 TypeScript 的外部 JS 库?
【问题讨论】:
-
相同。最终它抱怨它找不到“事件”或“计时器”并且不知道如何处理。
标签: javascript angularjs node.js typescript angular