如何less用“var less = require('less');”

在那里有人使用“less”这样的:

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

在我的电脑里,它说:“错误:无法find模块'less'”,但是我试图安装“less”

 "npm install less -g" 

在使用之前“require('less');”

最近NPM改变了一些关于全球模块的东西。

现在,默认情况下,在全局安装后只require(my_module)不起作用,即NPM甚至不检查my_module是否安装在全局path中。

你必须做的是两个select:

  1. 如果你仍然想使用全局模块,在你的项目中做npm link less ,这将创build符号链接到less安装在全局path。 它经常用于开发,但是对于产品他们build议不要(因为你失去了版本控制)。
  2. 在本地安装模块npm install less在您的项目文件夹中npm install less 。 适用于开发和生产,但正如你所猜测的,它再次下载less模块。

更多关于这个问题: https : //www.npmjs.org/doc/cli/npm-link.html

我认为这取决于你的Less(和节点)的版本。 以https://raw.githubusercontent.com/less/less.js/master/bin/lessc为例。 该文档还有一个关于程序使用的部分。

对于更less的v2,你应该指向less-node和较早的版本。 根据安装全局,您应该更改require的path,另请参见从node_modules加载文件夹 :

例如,如果'/home/ry/projects/foo.js'中的文件名为require('bar.js'),那么节点将按以下顺序查找以下位置:

/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