5
typescript가있는 ng2 앱에서 나는 stompjs를 사용하고 있으며 롤업없이 잘 작동합니다.롤업에서 stompjs를 가져 오는 방법
나는 그것을 수입하고있다 :
내 롤업 설정은 다음과 같습니다
import rollup from 'rollup';
import nodeResolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
export default {
entry: 'aot/app/src/boot-aot.js',
dest: 'dist/bundle.es2015.js', // output a single application bundle
sourceMap: true,
useStrict: false,
format: 'iife',
treeshake: true,
plugins: [
nodeResolve({
module: true,
jsnext: true,
main: true,
browser: true,
extensions: ['.js']
}),
commonjs({
include: [
'node_modules/rxjs/**',
'node_modules/stompjs/**'
],
namedExports: {
'node_modules/stompjs/lib/stomp.min.js': [ 'Stomp' ]
}
})
]
}
타이프 라이터 유형 정의 :
import {Stomp} from "stompjs"
롤업을 실행 한 후 나는 "스톰프가 정의되지 않은 예외"GET stompjs 파일
declare module "stompjs" {
export interface Client {
heartbeat: any;
debug(...args: string[]);
connect(...args: any[]);
disconnect(disconnectCallback:() => any, headers?: any);
send(destination: string, headers?:any, body?: string);
subscribe(destination: string, callback?: (message: Message) => any, body?: string);
unsubscribe();
begin(transaction: string);
commit(transaction: string);
abort(transaction: string);
ack(messageID: string, subscription: string, headers?: any);
nack(messageID: string, subscription: string, headers?: any);
}
export interface Message {
command: string;
headers: any;
body: string;
ack(headers?: any);
nack(headers?: any);
}
export interface Frame {
constructor(command: string, headers?: any, body?: string);
toString(): string;
sizeOfUTF8(s: string);
unmarshall(datas: any);
marshall(command: string, headers?, body?);
}
export interface Stomp {
client: Client;
Frame: Frame;
over(ws: WebSocket);
}
export default Stomp;
}