首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >module.exports“模块未定义”

module.exports“模块未定义”
EN

Stack Overflow用户
提问于 2015-04-15 22:15:44
回答 2查看 92.8K关注 0票数 31

因此,我正在使用RequireJS和React,尝试加载一个第三方组件,该组件已随以下命令一起安装:

代码语言:javascript
代码运行次数:0
运行
复制
npm install react-autocomplete

其结构如下:https://github.com/rackt/react-autocomplete/tree/master/lib

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

代码语言:javascript
代码运行次数:0
运行
复制
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");
 });

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

代码语言:javascript
代码运行次数:0
运行
复制
module.exports = {
  Combobox: require('./combobox'),
  Option: require('./option')
};

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

有没有人有一个明确的例子来说明我如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-16 00:05:57

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

代码语言:javascript
代码运行次数:0
运行
复制
define(function (require, exports, module) {

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

});

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

票数 32
EN

Stack Overflow用户

发布于 2015-04-15 23:52:00

问题是requireJS不支持CommonJS模块,只支持AMD。因此,如果第三方库不支持AMD,那么你将不得不跳过一些圈套才能让它工作。

如果可以选择,我建议使用browserifywebpack加载模块,因为大多数react社区都选择了这些工具,而且几乎所有第三方react组件都作为CommonJS模块发布在npm上。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29652716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档