尝试将Stomp over SockJS添加到angular应用程序:TS2307找不到模块
我下载了一个普通的javascript示例,用于连接websocket Spring频道,我正在努力将此功能导入angular 2应用程序 我已将导入添加到package.json:尝试将Stomp over SockJS添加到angular应用程序:TS2307找不到模块,angular,typescript,requirejs,Angular,Typescript,Requirejs,我下载了一个普通的javascript示例,用于连接websocket Spring频道,我正在努力将此功能导入angular 2应用程序 我已将导入添加到package.json: "dependencies": { "@angular/common": "~2.2.1", (...) "stompjs": "2.3.3", "sockjs-client": "1.1.1" }, 然后建议对systemjs.config.js进行编辑: (functi
"dependencies": {
"@angular/common": "~2.2.1",
(...)
"stompjs": "2.3.3",
"sockjs-client": "1.1.1"
},
然后建议对systemjs.config.js进行编辑:
(function (global) {
System.config({
paths: {
// paths serve as alias
'npm:': 'node_modules/'
},
// map tells the System loader where to look for things
map: {
// our app is within the app folder
app: 'app',
// angular bundles
'@angular/core': 'npm:@angular/core/bundles/core.umd.js',
(...)
'sockjs-client': 'npm:sockjs-client',
'stompjs': 'npm:stompjs'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
(...)
'sockjs-client': {
defaultExtension: 'js'
},
stompjs: {
defaultExtension: 'js'
}
}
});
})(this);
但是当我添加导入时
import {Stomp} from "stompjs";
我收到“TS2307:找不到模块”错误消息,代码编译为:
var stompjs_1 = require("stompjs");
导致无效的http url:
http://localhost/myapp/node_modules/stomp-client
而不是JS文件的路径
我做错了什么?我已经搜索了很多答案,比如这里:我也尝试过做类似的事情。我还尝试了其他进口语法,如:
import * as Stomp from 'stompjs';
但什么都不管用
如何在Angular2中使用这两个库?您需要在systemjs.config.js中写入库中javascript文件的完整路径: 例如,对于stompjs,根据Github上的回购协议,它可能是:
map {
(...)
'stompjs': 'npm:stompjs/lib/stomp.min.js'
},
packages: {
// Remove stompjs from here, because you already have the full path
}
之后,您可以使用以下语法使用库:
import * as stomp from 'stompjs';
您仍然会遇到错误TS2307:找不到模块,但至少它可以在您的浏览器中工作
我希望它能有所帮助