Eu quero fazer algo como isso, então npm install
também instala o package.json
de ../somelocallib
ou mais importante suas dependências.
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
Esse recurso foi implementado na versão 2.0.0 do npm. Exemplo:
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}
Qualquer um dos seguintes caminhos também é válido:
../foo/bar
~/foo/bar
./foo/bar
/foo/bar
O pacote local será copiado para o prefixo ( ./node-modules
).
Coloque somelocallib
como dependência no seu package.json
normal:
"dependencies": {
"somelocallib": "0.0.x"
}
Em seguida, execute o npm link ../somelocallib
npm e instalará a versão na qual você está trabalhando como um link simbólico .
app@0.0.1 /private/tmp/app
└── somelocallib@0.0.1 -> /private/tmp/somelocallib
Referência: link (1)
npm dedup
para corrigir este problema. npmjs.org/doc/cli/npm-dedupe.htmlnpm install <folder>
, instale o pacote no diretório como um link simbólico no projeto atual.Agora é possível especificar os caminhos de instalação do módulo Nó local
package.json
diretamente. Dos documentos:fonte
"bar": "file:///home/user/src/foo/bar"
node:onbuild
imagens padrão apenas copiam o diretório atual e, portanto, deixam de fora qualquer coisa../foo
.npm install
procedem ou outro repositório git na LAN? Quando tento a instalação acima e npm do git + ssh, ele parece procurar no diretório node_modules e não tentar passar por cima do git + ssh, embora seja assim que estou instalando o pacote de nível superior.Isso funciona para mim.
Coloque o seguinte no arquivo package.json
fonte
.gitignore
na pasta do módulo, criado.npmignore
e a primeira vez que o executei, apliquei 777 recursivamente em todas as pastas, excetonode_modules
. Mas sim, instalou as dependências. Usando o npm versão 1.4.14."dependencies": { "my-own-module": "file:../my-own-module" }
?npm link
é que você não precisa fazer issonpm install
toda vez para atualizar suas dependências.Se você deseja automatizar ainda mais isso, porque está verificando seu módulo no controle de versão e não deseja confiar nos devs lembrando-se do link npm, você pode adicioná-lo à seção "scripts" do package.json:
Isso parece além do hacky, mas parece "funcionar". Obtenha a dica desta edição da NPM: https://github.com/npm/npm/issues/1558#issuecomment-12444454
fonte
postinstall
e empostupdate
vez depreinstall
epreupdate
?É assim que você adicionará dependências locais:
npm install file:src/assets/js/FILE_NAME
Adicione-o ao package.json do NPM:
npm install --save file:src/assets/js/FILE_NAME
Adicione diretamente ao package.json assim:
fonte
Projeto mestre
Aqui está o package.json que você usará para o projeto principal:
Aqui
./somelocallib
está a referência à pasta da biblioteca em relação ao projeto mestre package.json .Referência: https://docs.npmjs.com/files/package.json#local-paths
Subprojeto
Manipule as dependências da sua biblioteca.
Além de executar
npm install
, você precisará executar(cd node_modules/somelocallib && npm install)
.Este é um erro conhecido no NPM.
Referência: https://github.com/npm/npm/issues/1341 (buscando uma referência mais atualizada)
Notas para o Docker
Faça check-in no seu mestre
package.lock
esomelocallib/package.lock
no seu gerenciador de código-fonte.Em seguida, no seu uso do Dockerfile:
Uso parênteses em minhas
(cd A && B)
construções para tornar a operação idempotente.fonte
Eu sei que
npm install ../somelocallib
funciona.No entanto, não sei se a sintaxe exibida na pergunta funcionará ou não
package.json
...Infelizmente, o documento parece mencionar apenas o URL como uma dependência.
Tente
file:///.../...tar.gz
, apontando para uma biblioteca local compactada ... e diga-nos se funciona.fonte
Isso funcionou para mim: primeiro, verifique se os diretórios npm têm o usuário certo
Então, no seu package.json, vincule o diretório
fonte
npm install
.Na verdade, a partir da NPM 2.0, agora há suporte para caminhos locais (veja aqui ).
fonte
Curioso ..... pelo menos no Windows (meu npm é 3. algo) que eu precisava fazer:
Quando eu fiz um
npm install ../module1 --save
resultado, resultou em caminhos absolutos e não em relação à documentação.Eu brinquei um pouco mais e determinei que
../xxx
era suficiente.Especificamente, tenho os módulos dos nós locais verificados para dizer d: \ build \ module1, d: \ build \ module2 e meu projeto do nó (aplicativo) em d: \ build \ nodeApp.
Para 'instalar', eu:
O package.json do módulo1 tem uma dependência de "módulo2": "../module2"; module2 não tem dependência local; O nodeApp possui dependências "module1": "../module1" e "module2": "../module2".
Não tenho certeza se isso funciona apenas para mim, pois todas as três pastas (module1, module2 e nodeApp) ficam no mesmo nível .......
fonte
Duas etapas para um desenvolvimento local completo:
fonte