define 未定义 Javascript 节点

define is not defined Javascript Node

我正在尝试 运行 一个带有 Node 的 Javascript 文件到 post 博客更新到 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');

但是当我 运行 节点 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)

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

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

    // other stuff...
});

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

谢谢。

您似乎正在尝试加载根据 AMD(异步模块定义)模式编码的库,Node 本身不支持该模式。库的作者完全有可能编写这样的库,以便在 Node.js 中加载它。库的用户必须扩展 Node 的模块加载能力以了解 AMD 才能加载此类库。

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

require("amd-loader");

在加载任何 AMD 模块之前。