节点全局模块和require()中的include是否有区别?

我一直在尝试在节点中运行一个小的js脚本。 它有一个声明var less = require('less'); 。 我确信nodenpmless是全局可用的。 尽pipe,当我在我的lessCompile.js上运行node时,我得到一个'module not found'错误。 为什么?

这是我的命令行序列。

 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\node_tut>npm install -g less C:\Users\stumma\AppData\Roaming\npm\lessc -> C:\Users\stumma\AppData\Roaming\npm\node_modules\less\bin\lessc less@2.0.0 C:\Users\stumma\AppData\Roaming\npm\node_modules\less ├── graceful-fs@3.0.4 ├── mime@1.2.11 ├── promise@6.0.1 (asap@1.0.0) ├── mkdirp@0.5.0 (minimist@0.0.8) ├── source-map@0.1.40 (amdefine@0.1.0) └── request@2.47.0 (caseless@0.6.0, aws-sign2@0.5.0, forever-agent@0.5.2, json-stringify-safe@5.0.0, oauth-sign@0.4.0, stringstream@0.0.4, tunnel-agent@0.4 .0, node-uuid@1.4.1, mime-types@1.0.2, qs@2.3.3, combined-stream@0.0.7, tough-cookie@0.12.1, form-data@0.1.4, http-signature@0.10.0, hawk@1.1.1, bl@0.9.3) C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\node_tut>less Missing filename ("less --help" for help) C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\node_tut>node lessCompile.js module.js:340 throw err; ^ Error: Cannot find module 'less' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> (C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\node_tut\lessCompile.js:1:74) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) 

ADD :我的lessCompile.js代码:

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

require()与全局模块一起工作。

C:\Users\stumma\AppData\Roaming\npm到您的Windows PATH环境variables中。

这是存储节点全局模块。 目前你在PATH没有这个目录。

之后,运行npm include less可用性不仅作为命令行可执行文件,而且还require