Javascript r.js能否解决与npm一起安装的依赖关系?
我已经使用npm安装要求js从npm安装了r.js 我希望这个函数在使用Javascript r.js能否解决与npm一起安装的依赖关系?,javascript,node.js,r.js,Javascript,Node.js,R.js,我已经使用npm安装要求js从npm安装了r.js 我希望这个函数在使用node main.js运行时能够向控制台生成一些输出: // main.js var requirejs = require('requirejs'); requirejs.optimize({ baseUrl: STATIC_PATH + 'js', nodeRequire: require, include: ['a', 'b'], out: function(text) {
node main.js运行时能够向控制台生成一些输出:
// main.js
var requirejs = require('requirejs');
requirejs.optimize({
baseUrl: STATIC_PATH + 'js',
nodeRequire: require,
include: ['a', 'b'],
out: function(text) {
console.log(text);
}
});
模块A和B的定义如下:
// a.js
define(['b'], function($) {
console.log('A');
});
我从requirejs文档中知道,它可以处理使用npm安装的模块,所以这里我尝试使用以前使用npm安装jquery安装的jquery
// b.js
define(['jquery'], function($) {
console.log('B', $);
});
但是当我运行main.js
时,我遇到了一个错误,表明r.js找不到名为jquery.js
的文件
所以基本上我的问题是我是否遗漏了什么,或者不可能对通过npm安装的模块进行r.js查找
更新:这里是带有MCVE的github repo-要求使用AMD模块语法,但NPM使用CommonJS。您可以告诉require(使用路径
配置)在哪里可以找到模块,但在许多情况下它们仍然不兼容。MCVE是一个很好的起点,但相应地,对于requirejs文档,它可以处理节点样式requires和节点模块。此外,jquery还可以用作amd模块,根据it github页面:我认为您已经将其反向使用了;您可以使用,但不能使用Require中的节点模块。也许我遗漏了一些东西,但您可以看到r.js如何从节点_模块解析dep。我只是想知道我是否能以某种方式使它与requirejs.optimize
一起工作。再说一遍,该文档描述的与您要求的相反。这就是如何在节点脚本中使用Require来代替节点的Require
。除非我误解了你的问题;您是为浏览器还是为节点构建?正如我的问题所述:我正在构建节点脚本,实际上我想在gulp任务中使用它。