UglifyJS с использованием NPM в Windows

Я нахожусь в окне 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   
[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
Даже после того, как я запустил 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.

Ответ 1

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

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

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

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

Ответ 2

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

npm -g install uglify-js

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

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

Ответ 3

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

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

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