define-это не определенный узел Javascript
Я пытаюсь запустить файл Javascript с Node для публикации обновлений блога в Tumblr.
Пока что в основном.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');
Но затем я получаю следующую ошибку при запуске node main.js
ReferenceError: define is not defined
at Object.<anonymous> (B:DocumentsGoogle DriveProgrammingCMPM 147 TraceryTumblr Traceryjs
tracerygrammar.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:DocumentsGoogle DriveProgrammingCMPM 147 TraceryTumblr Traceryjs
main.js:11:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
И вот где в грамматике возникает ошибка.файл js:
define(["./modifiers", "./node"], function(universalModifiers, Node) {'use strict';
// other stuff...
});
Я не думаю, что модуль загружается должным образом, потому что он утверждает, что функция define не определена. Я считаю, что эта функция происходит от requireJS, но я не думаю, что я загружаю его должным образом. Есть ли у кого-нибудь предложения о том, почему define не может быть определен, или предложения о том, как загрузить правильный модуль?
Спасибо.
1 ответ:
Похоже, что вы пытаетесь загрузить библиотеку, закодированную в соответствии с шаблоном AMD (определение асинхронного модуля), который узел не поддерживает изначально. Для автора библиотеки вполне возможно написать такую библиотеку, чтобы ее можно было загрузить в узел. Пользователи библиотеки должнырасширить возможности загрузки модулей узла, чтобы понять AMD , чтобы загрузить такую библиотеку.
Есть несколько загрузчиков, которые вы можете использовать, один из которых я использую amd-loader . После установки с
npm
, вы просто добавляетеrequire("amd-loader");
Перед загрузкой любого модуля AMD.