2012-01-05 51 views
10

Estoy en una caja de Windows 7, y recientemente he instalado la versión más reciente de nodo desde NodeJS.orgUglifyJS utilizando NPM en Windows

entonces me encontré ...

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 

Y comando reiniciado rápido, pero todavía no puedo correr ...

cd c:\inetpub\wwwroot\app\ 
node uglifyjs -o app.min.js app.js 

consigo este error ...

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) 

¿Hay algo más que deba hacer?

ACTUALIZACIÓN
Incluso después me encontré con el MNP como administartor, si me quedo

C:\Users\jcreamer>uglifyjs 

me sale ...

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. 

Respuesta

8

Las instalaciones globales son para las utilidades de línea de comandos.

Como se puede ver la utilidad de línea uglifyjs comando se dejó caer en su camino, por lo C:\Users\jcreamer\AppData\Roaming\npm\uglifyjs (que es un enlace a afear de bin\uglifyjs como se puede ver en la salida.)

@alessioalex Ya no es necesario paquetes de administración para instalar un paquete global El instalador MSI del nodo establece el prefijo predeterminado global en %APPDATA%\npm, por lo que los usuarios tienen la capacidad de escribir en él.

Si está intentando require("uglify-js") en su programa de nodo, entonces debe instalarlo localmente, no con la -g. Parece que estás tratando de usarlo como un programa de utilidad independiente, por lo que la sugerencia n. ° 2 de alessioalex es la correcta. Simplemente escriba uglifyjs para usarlo, no node uglifyjs.

+1

Ejecutar solo uglifyjs me da el '"C: \ Users \ jcreamer \ AppData \ Roaming \ npm \\.\ node_modules \ uglify-js \ bin \ uglifyjs "'no se reconoce como una comunicación interna o externa y, programa operable o archivo por lotes. – jcreamer898

+0

Puede publicar el problema aquí: https://github.com/isaacs/ npm/issues – isaacs

+0

¡Claro! Antes de hacer eso, quiero asegurarme de estar 100% seguro de hacerlo correctamente ... Entonces, debería ... 1. Ejecute npm -g install uglify-js 2. Ejecute uglifyjs -o app.min.js app.js Y eso debería funcionar? – jcreamer898

0

Puede hacer dos cosas:

  1. Ejecuta el comando prom pt con privilegios de administrador al instalar un paquete global como este (clic derecho -> Ejecutar como administrador).

  2. En lugar de node uglifyjs..., utilice uglifyjs directamente. Dado que está instalado globalmente, no es necesario que lo llame con un nodo al frente, eso no tiene sentido.

+0

Intenté eso, revise mi actualización de la pregunta para ver qué sucedió ... ¡gracias por su ayuda en esto! – jcreamer898

11

Si tiene Windows, a continuación, utilice el siguiente comando

npm -g install uglify-js 

la bandera -g indica que se trata de una instalación global y establecer la ruta de env.

Trabajando para mí. Avíseme si también funciona para usted.