Como instalar um módulo node.js sem usar npm?


115

Existem alguns módulos que estão listados na página github do node, mas não são publicados com o registro npm. Esses módulos não podem ser instalados usando o npm.

Qual é a maneira correta de instalar esses módulos nodejs após cloná-los do Git?

Respostas:


73

Você precisa baixar o código-fonte do github. Encontre o arquivo principal e inclua-o em seu arquivo principal.

Um exemplo disso pode ser encontrado aqui> Como instalar manualmente um módulo node.js?

Normalmente você precisa encontrar a fonte e acessar o arquivo package.json. Lá você encontrará qual é o arquivo principal. Para que você possa incluir isso em seu aplicativo.

Para incluir example.js em seu aplicativo. Copie-o na pasta do seu aplicativo e anexe-o no topo do seu arquivo js principal.

var moduleName = require("path/to/example.js")


1
É possível importar um script de uma URL externa (como var myscript = require("http://www.mywebsite.com/myscript.js"))? Parece que a requirefunção não funciona para URLs externos.
Anderson Green

2
requer é realmente síncrono, então não, ele não funciona para URLs externos.
Chris Tavares

Nota: você precisa remover as -masterbibliotecas anexadas ao github; como em mudar xxx-masterpara xxx.
BAR

65

Esses módulos não podem ser instalados usando o npm.

Na verdade, você pode instalar um módulo especificando em vez de um nome um caminho local. Contanto que o repositório tenha um package.jsonarquivo válido, ele deve funcionar.


Digite npm -le uma bela ajuda aparecerá assim:

CLI:

...
install     npm install <tarball file>
                npm install <tarball url>
                npm install <folder>
                npm install <pkg>
                npm install <pkg>@<tag>
                npm install <pkg>@<version>
                npm install <pkg>@<version range>

                Can specify one or more: npm install ./foo.tgz bar@stable /some/folder
                If no argument is supplied and ./npm-shrinkwrap.json is 
                present, installs dependencies specified in the shrinkwrap.
                Otherwise, installs dependencies from ./package.json.

O que chamou minha atenção foi: npm install <folder>

No meu caso, tive problemas com o mrtmódulo, então fiz isso (em um diretório temporário)

  • Clone o repo

     git clone https://github.com/oortcloud/meteorite.git
  • E eu o instalo globalmente com:

     npm install -g ./meteorite

Dica:

Também é possível instalar da mesma maneira o repo em um projeto npm local com:

     npm install ../meteorite

E também é possível criar um link para o repo, caso seja necessário um patch em desenvolvimento:

     npm link ../meteorite

1
mais excelente. Eu estava tendo problemas com um módulo também, então eu o bifurquei e clonei em um diretório irmão do meu projeto da web, atualizei todas as suas dependências para as versões mais recentes e instalei em meu projeto da web com 'npm install ../ broken_module_name Isso funcionou perfeitamente. Obrigado!
Perry Tew

+1, mas não funciona se não tivermos acesso à rede para npm e o módulo com o qual estamos instalando npm install <folder>tiver inúmeras outras dependências de npm.
Abdul Rauf de

Se o npm encontrar o pacote no node_modules, seja do escopo global (não tenho certeza aqui) ou do local, ele não tentará baixá-lo novamente. Isso significa que, se todas as dependências diretas de um repo puderem ser baixadas previamente e copiadas para a pasta node_module, ele funcionará.
Tiberiu C.

11

Baixe o código do github para o diretório node_modules

var moduleName = require("<name of directory>")

isso deve resolver.

se o módulo tiver dependências e um package.json, abra o módulo e insira npm install.

Espero que isto ajude


Acho que este código funciona se o arquivo principal for chamadoindex.js
R3tep 09/09/19

8

Você pode clonar o módulo diretamente em seu projeto local.

Inicie o terminal. CD no seu projeto e, em seguida:

npm install https://github.com/repo/npm_module.git --save


1
A resposta que eu procurava.
Faisal Mq

O que acontece quando o pacote é alterado, como você atualiza para a versão mais recente? ATM, a única "solução" que encontrei foi excluir o conteúdo de node_modules, excluir a entrada package.json e adicionar novamente, o que é uma dor ...
Predrag Stojadinović

1

Passo a passo:

  • Vamos dizer que você está trabalhando em um projeto use-gulpque usa ( requires) node_modulescomo gulpe gulp-util.
  • Agora você deseja fazer algumas modificações no gulp-utillib e testá-lo localmente com seu use-gulpprojeto ...
  • gulp-utilProjeto de bifurcação em github \ bitbucket etc.
  • Mude para o seu projeto: cd use-gulp/node_modules
  • Clonar gulp-utilcomo gulp-util-dev:git clone https://.../gulp-util.git gulp-util-dev
  • Execute npm installpara garantir que as dependências de gulp-util-devestão disponíveis.
  • Agora você tem um espelho de gulp-utilcomo gulp-util-dev. Em seu use-gulpprojeto, agora você pode substituir: require('gulp-util')...;call por: require('gulp-util-dev')para testar as alterações feitas emgulp-util-dev
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.