2014-10-27 2 views
1

Это там кто-нибудь использовать «меньше», как это:Как использовать less by "var less = require ('less');"

var less = require('less'); 
less.render('.class { width: (1 + 1) }', function (e, css) { 
    console.log(css); 
}); 

В моем компьютере, он сказал: «Ошибка: Не удается найти модуль" меньше»Но я попытался установить«меньше»по

.
"npm install less -g" 

перед использованием «требуется (« меньше »);

+0

Глобальные модули могут быть немного сложнее в несколько раз. Попробуйте удалить '-g' в конце (что делает его локальным модулем) и снова запустить код. –

ответ

1

Относительно недавно НПМ изменил несколько вещей, касающихся глобальных модулей.

Теперь, по умолчанию, просто require(my_module) после установки в глобальном масштабе не работает, то есть NPM даже не проверяет, установлен ли в глобальном пути my_module.

То, что вы должны сделать два варианта:

  1. Если вы все еще хотите использовать глобальный модуль, сделать npm link less в то же время в проекте, который будет создавать символическую ссылку на less, установленном в глобальном пути. Он часто используется в разработке, но для prodution они не советуют (поскольку вы теряете контроль версий).
  2. Установите модуль локально npm install less в папку проекта. Хорошо работает как для разработки, так и для производства, но, как вы уже догадались, он снова загружает модуль less.

Еще на эту тему: https://www.npmjs.org/doc/cli/npm-link.html

0

Я думаю, это зависит от версии Less (и узла). В качестве примера можно взять https://raw.githubusercontent.com/less/less.js/master/bin/lessc. Документы также получили раздел о programmatic-usage.

Для менее v2 вы должны указать на less-node и для более ранней версии до less. В зависимости, если вы установите глобальный вы должны изменить путь в require, смотри также Loading from node_modules Folders:

For example, if the file at '/home/ry/projects/foo.js' called require('bar.js'), then node would look in the following locations, in this order:

/home/ry/projects/node_modules/bar.js /home/ry/node_modules/bar.js /home/node_modules/bar.js /node_modules/bar.js

Что означает, что вы, возможно, придется установить less/lib/less.

Также модуль обещание должен быть установлен бег:

npm install promise