define未定义Javascript节点

lea*_*757 10 javascript jquery require node.js requirejs

我正在尝试使用Node运行Javascript文件以将博客更新发布到Tumblr.

到目前为止,在我的main.js文件中,我有这个:

// Tumblr Information
var tumblr = require('./vendor/tumblr');
tumblr.request(require('request'));
var Blog;

var jq = require('./vendor/jquery-1.11.1.min');
var reqq = require('./vendor/require');
var inher = require('./vendor/inheritance');

var grammars = require('./tracery/grammar');
Run Code Online (Sandbox Code Playgroud)

但是当我运行节点main.js时,我收到以下错误

ReferenceError: define is not defined
    at Object.<anonymous> (B:\Documents\Google Drive\Programming\CMPM 147 Tracery\Tumblr Tracery\js\
tracery\grammar.js:6:1)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at Object.<anonymous> (B:\Documents\Google Drive\Programming\CMPM 147 Tracery\Tumblr Tracery\js\
main.js:11:16)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
Run Code Online (Sandbox Code Playgroud)

这里是在grammar.js文件中抛出错误的地方:

define(["./modifiers", "./node"], function(universalModifiers, Node) {'use strict';

    // other stuff...
});
Run Code Online (Sandbox Code Playgroud)

我认为模块没有正确加载,因为它声明未定义define函数.我相信这个功能来自requireJS,但我认为我没有正确加载它.有没有人对可能没有定义定义的原因有任何建议,或者有关如何加载正确模块的建议?

谢谢.

Lou*_*uis 14

看起来您正在尝试加载根据AMD(异步模块定义)模式编码的库,该模式本身不支持.库的作者完全可以编写这样的库,以便可以在Node中加载它.库的用户必须扩展Node的模块加载功能才能理解AMD以加载这样的库.

你可以使用多个加载器,我使用的是amd-loader.安装后npm,您只需添加

require("amd-loader");
Run Code Online (Sandbox Code Playgroud)

在加载任何AMD模块之前.