[英]How requirejs load commonjs packages?
我遵循http://requirejs.org/docs/api.html#packages来学习RequireJ如何加载CommonJS模块,但我无法理解。
我有下面的文件。
foo / foo.js main.js require.js
foo / foo.js的内容:
exports.bar = '1234';
exports.xyz = function noop() {};
main.js:
requirejs.config({
packages: [{name:'foo', main: 'foo'}]
});
require(['foo'], function(foo) {
console.log(foo.bar);
});
它说看不懂栏未定义
您已经错过了在问题中链接到的文档的重要部分:
尽管软件包可以具有CommonJS目录布局, 但模块本身应采用RequireJS可以理解的模块格式 。 规则的例外:如果使用r.js节点适配器,则模块可以采用传统的CommonJS模块格式。 如果需要将传统的CommonJS模块转换为RequireJS使用的异步模块格式,则可以使用CommonJS转换工具。
(已添加重点。)
这不是RequireJS可以理解的:
exports.bar = '1234';
exports.xyz = function noop() {};
它必须是:
define(function(require, exports, module) {
exports.bar = '1234';
exports.xyz = function noop() {};
});
您可以手动进行此转换,也可以使用r.js -convert
为您进行转换。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.