2012-01-05 55 views
10

我在Windows 7中,而近日筆者從NodeJS.orgUglifyJS在Windows

然後我跑安裝最新節點的版本使用NPM ...

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 
[email protected] 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
即使在我跑的故宮作爲管理員聯絡,如果我跑

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. 

回答

8

全局安裝用於命令行實用程序。

正如你可以看到uglifyjs命令行實用程序被放入你的路徑,在C:\Users\jcreamer\AppData\Roaming\npm\uglifyjs(這是醜化的bin\uglifyjs,你可以在輸出中看到一個鏈接。)

@alessioalex您不再需要管理包安裝全球軟件包。節點MSI安裝程序將全局默認前綴設置爲%APPDATA%\npm,以便用戶有能力寫入它。

如果您在節點程序中嘗試使用require("uglify-js"),那麼您應該在本地安裝它,而不是使用-g。它看起來像你試圖把它作爲一個獨立的util,所以alessioalex的#2建議是完全正確的。只需輸入uglifyjs即可使用,而不是node uglifyjs

+1

只運行uglifyjs會給我''C:\ Users \ jcreamer \ AppData \ Roaming \ npm \\。\ node_modules \ uglify -js \ bin \ uglifyjs「'不被識別爲內部或外部通信程序 和 可操作程序或批處理文件。 – jcreamer898 2012-01-05 16:03:43

+0

您可以在此處發佈問題:https://github.com/isaacs/ npm/issues – isaacs 2012-01-05 16:05:07

+0

當然!在我這樣做之前,我想確保我100%確定我正確地做到了這一點......所以,我應該... 1.運行npm -g install uglify -js 2。運行uglifyjs -o app.min.js app.js 那應該有效嗎? – jcreamer898 2012-01-05 16:07:58

0

你可以做兩件事情:

  1. 運行命令prom在安裝像這樣的全局程序包時具有管理員權限的pt(右鍵單擊 - >以管理員身份運行)。可以直接使用uglifyjs而不是node uglifyjs...。由於它是全局安裝的,因此您無需在前面使用節點調用它,這是沒有意義的。

+0

試過,看看我的更新問題,看看發生了什麼......感謝您對此的幫助! – jcreamer898 2012-01-05 15:57:14

11

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

npm -g install uglify-js 

-g標誌表明這是一個全球性的安裝,將設置ENV路徑。

爲我工作。讓我知道它是否也適合你。