Como instalo o pacote.dependências de json na pasta actual usando o npm

tenho uma aplicação web: fooapp . Tenho um package.json na raiz. Quero instalar todas as dependências num node_modules directory específico. Como faço isto?

O Que Eu quero

Digamos que tenho duas dependências. Quero acabar com uma estrutura de directórios como esta:

node_modules/
  widgetA
  widgetB
fooapp/
  package.js
  lib
  ..

O Que Eu recebo

quando corro npm install fooapp/ ouço isto:

node_modules/
  fooapp/
    node_modules/
      widgetA
      widgetB
    package.js
    lib/
    ..
fooapp/
  package.js
  lib/
  ..

O MPN faz uma cópia da minha pasta de aplicações na pasta node_ modules dir e instala os pacotes dentro outro directório do node_ modules.

Entendo que isto faz sentido para instalar um pacote. Mas eu não tenho a minha aplicação web dentro de outra coisa, eu dirijo-a directamente. Estou procurando uma maneira simples de instalar minhas dependências em um diretório de node_ modules específico.

Author: Michael Mior, 2011-12-03

2 answers

Em execução:

npm install

De dentro da sua pasta de aplicações (isto é, onde está o pacote.json está localizado) irá instalar as dependências para o seu aplicativo, em vez de instalá-lo como um módulo, como descrito aqui. Estes serão colocados ./ node_ modules em relação ao seu pacote.JSON file (Na verdade é um pouco mais complexo do que isso, então verifique os documentos do MPN aqui).

Você está livre para mover a pasta de node_ modules para a pasta-mãe da sua aplicação, se quiser, porque o node o mecanismo "require" compreende isto. No entanto, se quiser actualizar as dependências da sua aplicação com o install/update, o npm não irá ver as 'node_ modules' realocadas e irá, em vez disso, criar uma nova dir, novamente em relação ao pacote.json.

Para evitar isto, basta criar uma ligação simbólica para os modelos node_ relocalizados a partir da sua aplicação dir:

ln -s ../node_modules node_modules
 307
Author: ireddick, 2015-02-03 13:53:08

No meu caso, preciso de fazer

sudo npm install  

O meu projecto está dentro do /var / www, por isso também preciso de definir as permissões adequadas.

 12
Author: aesede, 2013-11-06 00:23:40