如何使用Webpack和Coffee配置BaconJS

时间:2016-08-26 21:11:03

标签: typescript coffeescript webpack bacon.js

我将遗留代码移植到Webpack,我有以下内容......

TS中的依赖加载器

import "baconjs/dist/Bacon.js"

咖啡模块

@stream = new Bacon.Bus()

当我尝试跑步时,我得到了

  

zone.js?fad3:269未捕获的ReferenceError:未定义培根

我尝试将此添加到我的webpack配置....

new webpack.ProvidePlugin({
    ...
    Bacon: "Bacon"
}),

但它没有帮助。

  

找不到模块:错误:无法在...中解析模块'培根'。

我该怎么做才能解决这个问题?

2 个答案:

答案 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?