Typescript 如何使用Webpack和Coffee配置BaconJS

Typescript 如何使用Webpack和Coffee配置BaconJS,typescript,coffeescript,webpack,bacon.js,Typescript,Coffeescript,Webpack,Bacon.js,我正在将遗留代码移植到Webpack,我有以下内容 TS中的依赖加载程序 import "baconjs/dist/Bacon.js" 咖啡模块 @stream = new Bacon.Bus() 当我试着跑的时候,我会 zone.js?fad3:269未捕获引用错误:未定义Bacon 我尝试将此添加到我的网页配置 new webpack.ProvidePlugin({ ... Bacon: "Bacon" }), 但这没有帮助 找不到模块:错误:无法解析中的模块“Baco

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

TS中的依赖加载程序

import "baconjs/dist/Bacon.js"
咖啡模块

@stream = new Bacon.Bus()
当我试着跑的时候,我会

zone.js?fad3:269未捕获引用错误:未定义Bacon

我尝试将此添加到我的网页配置

new webpack.ProvidePlugin({
    ...
    Bacon: "Bacon"
}),
但这没有帮助

找不到模块:错误:无法解析中的模块“Bacon”


我能做些什么来解决这个问题?

问题可能是在导入模块时

导入模块仅用于副作用 虽然不是推荐的做法,但一些模块设置了一些可供其他模块使用的全局状态。这些模块可能没有任何出口,或者消费者对其出口不感兴趣。要导入这些模块,请使用:

import "./my-module.js";
Bacon.js
是一个UMD模块,您不能以这种方式导入它。试一试

import {Bacon} from "baconjs/dist/Bacon.js";
或在CS中:

Bacon = require('baconjs/dist/Bacon.js')

确保在路径中。

前面的答案是正确的,但我犹豫是否必须在每个需要它的咖啡脚本文件中包含
Bacon=require(“baconjs/dist/Bacon.js”)
。所以我继续向我的Typescript依赖项文件添加了以下内容

window['Bacon'] = require('baconjs/dist/Bacon.js');
这似乎有效,不需要
require
;-)分别在每个coffeescript文件上

我最初试过

window.Bacon = require('baconjs/dist/Bacon.js');

但是Typescript不喜欢它()

我想你忽略了一个事实,这是CoffeeScript而不是Typescript,我认为导入对CS不起作用。我确实尝试了这一点,但我得到了错误TS2307:找不到模块'baconjs/dist/Bacon.js'。我在node_modules中看到了该位置的文件。那么在您的问题中,
//在TS import“baconjs/dist/Bacon.js”
中是什么呢?我有一个加载依赖项的TS文件,但Bacon变量实际上在CS中使用,而不是在TS中。因此我的理解是,即使我使用TS加载一个模块,也不能让CS访问它,但我可能错了。无论哪种方式,我都无法确定,因为我在尝试时遇到了错误。可能是旧版本的bacon没有连接UMD模块吗?我想再想想,无论如何,导入应该由ES2015 polyfills处理,而不是由Typescript处理。因此,如果我们可以修复Webpack错误,那么您可能是对的。如果您需要在CS模块中加载
Bacon
,则必须在此模块中加载它。