Вот ситуация ... Итак, я создал модуль Node.js, который действует как интерфейс для некоторых шаблонизаторов Node.js. Shift.js .Это включено в другой модуль Node.js, Design.io (он указан в блоке package.json dependencies
Design.io).Design.io просматривает файлы на предмет изменений.
Затем вы создаете приложение и require('design.io')
.Вы также устанавливаете, скажем, Less и Stylus в свой проект.
Таким образом, когда вы сохраняете файл .less
или .styl
, вызывается цепочка методов:
require("design.io")
получает уведомление о событии файловой системы.Design.io затем вызывает require('shift').render(string, extension, callback)
.Затем Shift.js вызывает require(moduleFor(extension)) # require("less")
.Строка скомпилирована.
В моем приложении (текущий рабочий каталог) я установил меньше и стилус:
npm install less stylus
Проблема, с которой я столкнулся, в шаг 3 , который вызывается из модуля Shift.js, я получаю такие ошибки:
Error: Cannot find module 'less'
at Function._resolveFilename (module.js:334:11)
at Function._load (module.js:279:25)
at Module.require (module.js:357:17)
at require (module.js:368:17)
at Less.engine (/Users/viatropos/Documents/git/plugins/design.io/node_modules/shift/lib/shift/less.js:6:14)
at Less.render (/Users/viatropos/Documents/git/plugins/design.io/node_modules/shift/lib/shift/less.js:18:21)
at /Users/viatropos/Documents/git/plugins/design.io/node_modules/shift/lib/shift.js:69:23
at /Users/viatropos/Documents/git/plugins/design.io/node_modules/async/lib/async.js:118:13
at Object.forEachSeries (/Users/viatropos/Documents/git/plugins/design.io/node_modules/async/lib/async.js:134:9)
at Object.render (/Users/viatropos/Documents/git/plugins/design.io/node_modules/shift/lib/shift.js:78:31)
Мой вопрос: почему это происходит?Я думал, что вы можете динамически запрашивать библиотеки из модуля, пока они установлены где-то ... Чего мне не хватает?
Цель состоит в том, чтобы такие библиотеки, как Shift.js, не имели быопределить каждую отдельную зависимость в package.json
… Для библиотеки «интерфейса с механизмами шаблонов», которая потребовала бы слишком много зависимостей, которые приложение, вероятно, никогда бы не использовало.
Спасибо за помощь, надеюсь, что это былонесколько ясно.