Помощь, требующая модуля npm в node.js - PullRequest
8 голосов
/ 24 июня 2011

Я чувствую, что мне здесь не хватает самого базового ...

Поэтому я устанавливаю библиотеку npm с npm install somelib. И из того, что я прочитал, я тогда смогу просто сделать

var somelib = require('somelib');

Но он ничего не может найти. У меня есть каталог node_modules в корне моего приложения, но, похоже, он его не находит.

Я пытался require.paths.push('node_modules'), но это не помогает. Единственное, что, кажется, работает, это:

require.paths.unshift('.');
var somelib = require('node_modules/somelib/lib/somelib');

Что заставляет меня чувствовать, что это гораздо больше работы, чем мне нужно для загрузки библиотеки npm. Что я здесь не так делаю? Я думал, что установка модулей в приложении означала, что мне не нужно много возиться с переменными среды или путями?

Ответы [ 2 ]

4 голосов
/ 24 июня 2011

Возможно, что somelib не имеет файла main, определенного в их package.json, или что на него неправильно ссылаются. Если somelib не имеет main, но имеет directories.lib, тогда вы можете сделать require('somelib/thefile.js').

Если somelib написано в coffeescript, а ваше приложение - нет, сначала вам нужно будет require('coffee-script').

Обновление: , поскольку js2coffee - это coffeescript, я пойду с вами, вам нужно сделать последнее.

1 голос
/ 24 июня 2011

Наличие определенного имени модуля вместо "somelib" может помочь ... но проверьте файл package.json пакета.Покажите require.paths и сравните.Читайте о модульной системе узла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...