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

时间:2014-10-27 07:25:40

标签: node.js less

有人使用" less"像这样:

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

在我的电脑中,它说:"错误:无法找到模块'更少'"。但我曾尝试安装" less"通过

"npm install less -g"

使用前"要求('少');"

2 个答案:

答案 0 :(得分:1)

最近NPM对全球模块的改变很少。

现在,默认情况下,全局安装后只需require(my_module)就行了,也就是说,NPM甚至不会检查全局路径中是否安装了my_module

您需要做的是两个选择:

  1. 如果您仍想使用全局模块,请在项目中执行npm link less,这将创建指向全局路径中安装的less的符号链接。它通常用于开发,但对于生产,他们建议不要(因为你失去版本控制)。
  2. 在项目文件夹中本地安装模块npm install less。适用于开发和生产,但正如您猜测的那样,它会再次下载less模块。
  3. 有关此主题的更多信息:https://www.npmjs.org/doc/cli/npm-link.html

答案 1 :(得分:0)

我认为这取决于您的Less(和节点)版本。 您可以以https://raw.githubusercontent.com/less/less.js/master/bin/lessc为例。文档还有一个关于programmatic-usage的部分。

对于Less v2,您应指向less-node,将早期版本指向less。如果您安装全局,则应更改require中的路径,另请参阅Loading from node_modules Folders

  

例如,如果调用'/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

还应通过运行:

来安装promise模块
npm install promise