10

我在 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)  

还有什么我需要做的吗?

更新
即使在我以管理员身份运行 npm 之后,如果我运行

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.
4

3 回答 3

12

如果您有 Windows,则使用以下命令

npm -g install uglify-js

-g标志表明这是一个全局安装并将设置环境路径。

为我工作。让我知道它是否也对您有用。

于 2013-02-03T19:50:29.100 回答
8

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

如您所见,uglifyjs命令行实用程序已放入您的路径中,位于C:\Users\jcreamer\AppData\Roaming\npm\uglifyjs(这是一个指向 uglify 的链接,bin\uglifyjs您可以在输出中看到。)

@alessioalex 您不再需要管理包来安装全局包。节点 MSI 安装程序将全局默认前缀设置为%APPDATA%\npm,因此用户可以对其进行写入。

如果您尝试require("uglify-js")在您的节点程序中安装它,那么您应该在本地安装它,而不是使用 -g。看起来您正在尝试将其用作独立实用程序,因此 alessioalex 的 #2 建议是完全正确的。只需键入uglifyjs即可使用它,而不是node uglifyjs.

于 2012-01-05T15:59:25.893 回答
0

你可以做两件事:

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

  2. 而不是直接node uglifyjs...使用uglifyjs。由于它是全局安装的,因此您无需在前面使用 node 调用它,这没有任何意义。

于 2012-01-05T15:36:11.180 回答