UglifyJS с помощью NPM в Windows - PullRequest
10 голосов
/ 05 января 2012

Я нахожусь на коробке Windows 7, и я недавно установил самую последнюю версию Node от NodeJS.org

Я тогда побежал ...

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 от имени администратора, если я запускаю

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.

Ответы [ 3 ]

11 голосов
/ 03 февраля 2013

Если у вас Windows, то используйте следующую команду

npm -g install uglify-js

флаг -g указывает, что это глобальная установка, и установит путь env.

Работает для меня,Дайте мне знать, если это работает и для вас.

8 голосов
/ 05 января 2012

Глобальные установки предназначены для утилит командной строки.

Как видите, утилита командной строки uglifyjs сброшена на ваш путь, на C:\Users\jcreamer\AppData\Roaming\npm\uglifyjs (что является ссылкой на bin\uglifyjs в uglify, как вы можете видеть в выходных данных).

@ alessioalex Вам больше не нужны пакеты администратора для установки глобального пакета. Установщик MSI узла устанавливает глобальный префикс по умолчанию %APPDATA%\npm, поэтому пользователи могут писать в него.

Если вы пытаетесь require("uglify-js") в вашей программе узла, то вам следует установить ее локально, а не с -g. Похоже, вы пытаетесь использовать его как отдельную утилиту, поэтому предложение № 2 от alessioalex совершенно верно. Просто введите uglifyjs, чтобы использовать его, а не node uglifyjs.

0 голосов
/ 05 января 2012

Вы можете сделать две вещи:

  1. Запустить командную строку с правами администратора при установке глобального пакета, подобного этому (щелкните правой кнопкой мыши -> Запуск от имени администратора).

  2. Вместо node uglifyjs... используйте uglifyjs напрямую.Поскольку он установлен глобально, вам не нужно вызывать его с узлом впереди, это не имеет смысла.

...