我将遗留代码移植到Webpack,我有以下内容......
TS中的依赖加载器
import "baconjs/dist/Bacon.js"
咖啡模块
@stream = new Bacon.Bus()
当我尝试跑步时,我得到了
zone.js?fad3:269未捕获的ReferenceError:未定义培根
我尝试将此添加到我的webpack配置....
new webpack.ProvidePlugin({
...
Bacon: "Bacon"
}),
但它没有帮助。
找不到模块:错误:无法在...中解析模块'培根'。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
问题可能在于导入模块。
仅为副作用导入模块
虽然不推荐练习,但有些模块设置了一些可供其他模块使用的全局状态。这些模块可能没有任何出口,或者消费者对其任何出口都不感兴趣。要导入这些模块,请使用:
import "./my-module.js";
Bacon.js
是UMD模块,您无法以这种方式导入它。尝试
import {Bacon} from "baconjs/dist/Bacon.js";
或在CS中:
Bacon = require('baconjs/dist/Bacon.js')
确保路径正确。
答案 1 :(得分:0)
之前的答案是在正确的轨道上,但我不得不在每个需要它的咖啡脚本文件中加入class A
{
char _text[100];
size_t _size;
public:
explicit A(char* text, size_t tsize) : _size(tsize)
{
strncpy(_text, text, 100);
}
inline std::string get_text()
{
return std::string(_text, _size); //Explicit `move` call is unnecessary
}
};
。所以我继续将以下内容添加到我的Typescript依赖项文件...
Bacon = require("baconjs/dist/Bacon.js")
这似乎已经起作用,并且不需要在每个coffeescript文件上单独使用window['Bacon'] = require('baconjs/dist/Bacon.js');
;-)。
我最初尝试过
require
但是Typescript不喜欢它(How do you explicitly set a new property on `window` in TypeScript?)