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\uglifyjs
的bin\uglifyjs
的链接,就像你在输出中看到的一样)。
@alessioalex你不再需要pipe理包来安装一个全局包。 节点MSI安装程序将全局默认前缀设置为%APPDATA%\npm
,以便用户有权写入。
如果你想在你的节点程序中require("uglify-js")
,那么你应该在本地安装,而不是-g。 看起来你试图把它作为一个独立的util,所以alessioalex的#2build议是完全正确的。 只要键入uglifyjs
来使用它,而不是node uglifyjs
。
如果你有Windows,那么使用下面的命令
npm -g install uglify-js
-g
标志表示这是全局安装,并将设置envpath。
为我工作。 让我知道它是否也适合你。
你可以做两件事情:
-
安装像这样的全局程序包时,以pipe理员权限运行命令提示符(右键单击 – >以pipe理员身份运行)。
-
而不是
node uglifyjs...
直接使用uglifyjs
。 由于它是全局安装的,你不需要在前面调用它,这是没有意义的。