UglifyJS在Windows中使用NPM

我在Windows 7中,最近我从NodeJS.org安装了Node的最新版本

我然后跑…

C:\Users\jcreamer>npm install -g uglify-js npm http GET https://registry.npmjs.org/uglify-js npm http 304 https://registry.npmjs.org/uglify-js C:\Users\jcreamer\AppData\Roaming\npm\uglifyjs -> C:\Users\jcreamer\AppData\Roaming\npm\node_modules\uglify-js\bin\uglifyjs uglify-js@1.2.3 C:\Users\jcreamer\AppData\Roaming\npm\node_modules\uglify-js 

并重新启动命令提示符,但我仍然无法运行…

 cd c:\inetpub\wwwroot\app\ node uglifyjs -o app.min.js app.js 

我得到这个错误…

 node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: Cannot find module 'C:\Inetpub\wwwroot\analytics\uglifyjs' at Function._resolveFilename (module.js:334:11) at Function._load (module.js:279:25) at Array.0 (module.js:470:10) at EventEmitter._tickCallback (node.js:192:40) 

还有什么我需要做的吗?

UPDATE
即使我运行npm作为administartor,如果我跑

 C:\Users\jcreamer>uglifyjs 

我得到…

 C:\Users\jcreamer>"C:\Users\jcreamer\AppData\Roaming\npm\\.\node_modules\uglify-js\bin\uglifyjs" '"C:\Users\jcreamer\AppData\Roaming\npm\\.\node_modules\uglify-js\bin\uglifyjs"' is not recognized as an internal or external comm and, operable program or batch file. 

全局安装用于命令行实用程序。

正如你所看到的, uglifyjs命令行工具被放到你的path中,在C:\Users\jcreamer\AppData\Roaming\npm\uglifyjs (这是一个到bin\uglifyjsbin\uglifyjs的链接,就像你在输出中看到的一样)。

@alessioalex你不再需要pipe理包来安装一个全局包。 节点MSI安装程序将全局默认前缀设置为%APPDATA%\npm ,以便用户有权写入。

如果你想在你的节点程序中require("uglify-js") ,那么你应该在本地安装,而不是-g。 看起来你试图把它作为一个独立的util,所以alessioalex的#2build议是完全正确的。 只要键入uglifyjs来使用它,而不是node uglifyjs

如果你有Windows,那么使用下面的命令

 npm -g install uglify-js 

-g标志表示这是全局安装,并将设置envpath。

为我工作。 让我知道它是否也适合你。

你可以做两件事情:

  1. 安装像这样的全局程序包时,以pipe理员权限运行命令提示符(右键单击 – >以pipe理员身份运行)。

  2. 而不是node uglifyjs...直接使用uglifyjs 。 由于它是全局安装的,你不需要在前面调用它,这是没有意义的。