gpt4 book ai didi

javascript - 模块.导出 "Module is not defined"

转载 作者:行者123 更新时间:2023-12-03 13:03:25 24 4
gpt4 key购买 nike

所以,我正在使用 RequireJS 和 React,尝试加载第三方组件,该组件已安装:

npm install react-autocomplete

结构在这里:https://github.com/rackt/react-autocomplete/tree/master/lib

现在,我有一个 main.js 文件,在加载 requireJS 时启动,如下所示:

require.config({
paths: {
"react" : "react/react",
"jsx-transformer" : "react/JSXTransformer",
"react-autocomplete" : "node_modules/react-autocomplete/lib/main"
}
});

require(["react"], function(react) {
console.log("React loaded OK.");
});

require(["jsx-transformer"], function(jsx) {
console.log("JSX transformer loaded OK.");
});

require(['react-autocomplete'], function (Autocomplete) {
console.log("React autocomplete component loaded OK.");
var Combobox = Autocomplete.Combobox;
var ComboboxOption = Autocomplete.Option;
console.log("Autocomplete initiated OK");
});

现在,一切加载正常,但是对于第三方组件中的 main.js 文件,第三个 require 语句抛出“模块未定义”,如下所示:

module.exports = {
Combobox: require('./combobox'),
Option: require('./option')
};

我一直在读到这与我试图需要 CommonJS 风格的模块有关,但我不知道如何自行修复它,因为我对此很陌生。

有人有一个清楚的例子来说明我如何解决这个问题吗?

最佳答案

RequireJS 无法按原样加载 CommonJS 模块。但是,您可以对它们进行最小的修改来加载它们。您必须将它们包装在 define 调用中,如下所示:

define(function (require, exports, module) {

module.exports = {
Combobox: require('./combobox'),
Option: require('./option')
};

});

如果您有一堆需要转换的模块,或者您正在使用以 CommonJS 模式编写的第三方库并希望将其作为构建过程的一部分进行转换,则可以使用 r.js为您执行转换。

关于javascript - 模块.导出 "Module is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29652716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com