Respostas:
Você pode usar a --prefix
opção:
mkdir -p ./install/here/node_modules
npm install --prefix ./install/here <package>
Os pacotes serão instalados no ./install/here/node_modules
. A mkdir
é necessária uma vez NPM poderiam escolher um já existente node_modules
diretório mais acima na hierarquia. (Consulte a documentação do npm nas pastas .)
npm install
(sem nome do pacote)? Eu instalei isso diretamente, mas o npm procura package.json
no {prefix}
. O que eu também pretendo é poder deixar o packages.json
root no projeto e, ao mesmo tempo, instalar todos os pacotes {project root}/{project webroot}
.
npm install
, mas --prefix
parece uma solução melhor, se não estiver causando uma recursão.
Na documentação , está indicado: Use a opção prefix junto com a opção global :
A configuração do prefixo é padronizada para o local em que o nó está instalado. Na maioria dos sistemas, é / usr / local . No Windows, esse é o local exato do binário node.exe. Nos sistemas Unix, é um nível superior, pois o nó geralmente é instalado em {prefix} / bin / node, em vez de {prefix} /node.exe .
Quando o sinalizador global é definido, o npm instala coisas nesse prefixo. Quando não está definido, ele usa a raiz do pacote atual ou o diretório de trabalho atual, se ainda não estiver em um pacote.
(Ênfase por eles)
Portanto, em seu diretório raiz, você pode instalar com
npm install --prefix <path/to/prefix_folder> -g
e instalará a node_modules
pasta na pasta
<path/to/prefix_folder>/lib/node_modules
require
instalar pacotes globalmente, pode?
A partir da versão 3.8.6 do npm, você pode usar
npm install --prefix ./install/here <package>
para instalar no diretório especificado. O NPM cria uma node_modules
pasta automaticamente, mesmo quando um node_modules
diretório já existe na hierarquia superior. Você também pode ter um package.json
no diretório atual e instalá-lo no diretório especificado usando a --prefix
opção:
npm install --prefix ./install/here
No npm 6.0.0, você pode usar
npm install --prefix ./install/here ./
para instalar o package.json no diretório atual no diretório "./install/here". Há uma coisa que eu notei no Mac: ele cria um link simbólico para a pasta pai dentro do diretório node_modules. Mas ainda funciona.
NOTA: O NPM respeita o caminho que você especificou através da --prefix
opção Ele é resolvido conforme a documentação do npm em pastas , somente quando npm install
é usado sem a --prefix
opção
Can't install <current directory>: Missing package name
package.json
arquivo dentro./install/here