npm - instala dependências para um pacote em uma pasta diferente?

142

Eu tenho a seguinte estrutura de diretórios:

/some_project
    source.js
    package.json

Eu gostaria de instalar as dependências para some_project. Eu sei que eu poderia cd em some_project e, em seguida, execute o npm install

Mas eu queria saber se é possível sem alterar o diretório? Algo como

npm install some_project/package.json 
Florim
fonte

Respostas:

344

Você pode usar a npm install <folder>variante com a --prefixopção No seu cenário, a pasta e o prefixo serão os mesmos:

npm --prefix ./some_project install ./some_project
coudy
fonte
4
Esta é a verdadeira resposta para a pergunta. Obrigado @coudy.
G. Ghez
5
BTW, ele cria vazio etcpasta no destino, é um bug conhecido github.com/npm/npm/pull/7249
Michael Radionov
8
Obrigado por esta resposta. Existe mais clareza sobre se o segundo ./some_projecté necessário?
Aron
12
o segundo ./some_projectnão é necessário
JRJurman
4
Isso não parece funcionar para mim no Windows 10. Ele instala as dependências no diretório atual e apenas coloca um link simbólico na subpasta.
Herohtar 31/08/18
45

Atualização: Como a --prefixopção existe, agora voto na resposta de @ coudy para esta pergunta. Resposta original abaixo:

Não, npmsempre será instalado no diretório atual ou, com -g, no node_modules amplo do sistema. Você pode conseguir isso com um subshell, o que não afetará seu diretório atual:

(cd some_project && npm install)

Os parênteses fazem com que seja executado em um subshell .

Linus Thiel
fonte
Foi o que eu fiz - cd some_project && npm install. Obrigado
Florin
1
Existe um equivalente disso para o Windows?
Meligy
@Meligy você pode usarSTART /D "%my_dir%" /I /WAIT npm install
Everspace 30/10
1

No Windows 10, não consegui --prefixtrabalhar, então tive que cdexecutá-lo.

cd PATH_TO_FOLDER && npm install 
Yoannes Geissler
fonte