如何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:
- 如果你仍然想使用全局模块,在你的项目中做
npm link less
,这将创build符号链接到less
安装在全局path。 它经常用于开发,但是对于产品他们build议不要(因为你失去了版本控制)。 - 在本地安装模块
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