json - descargar - npm install windows
¿Hay alguna manera de compilar automáticamente el archivo package.json para proyectos Node.js? (10)
1. Elección
Si git y usuario de GitHub:
generate-package
más simple, que npm init
.
más
y / o no te gusta la plantilla package.json
, que genera-paquete o npm init
genera:
Usted puede generar su propia plantilla a través de aplicaciones de andamios como generate , sails o yeoman .
2. Relevancia
Esta respuesta es relevante para marzo de 2018. En el futuro, los datos de esta respuesta pueden estar obsoletos.
El autor de esta respuesta utilizó personalmente el paquete generador en marzo de 2018.
3. Limitaciones
Necesitas usar git y GitHub para usar generate-package.
4. Demostración
Por ejemplo, creo una carpeta en blanco sasha-npm-init-vs-generate-package
.
4.1. generar-paquete
Mando:
D:/SashaDemoRepositories/sasha-npm-init-vs-generate-package>gen package
[16:58:52] starting generate
[16:59:01] √ running tasks: [ ''package'' ]
[16:59:04] starting package
? Project description? generate-package demo
? Author''s name? Sasha Chernykh
? Author''s URL? https://vk.com/hair_in_the_wind
[17:00:19] finished package √ 1m
package.json
:
{
"name": "sasha-npm-init-vs-generate-package",
"description": "generate-package demo",
"version": "0.1.0",
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package",
"author": "Sasha Chernykh (https://vk.com/hair_in_the_wind)",
"repository": "Kristinita/sasha-npm-init-vs-generate-package",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"license": "MIT",
"engines": {
"node": ">=4"
},
"scripts": {
"test": "mocha"
},
"keywords": [
"generate",
"init",
"npm",
"package",
"sasha",
"vs"
]
}
4.2. npm init
D:/SashaDemoRepositories/sasha-npm-init-vs-generate-package>npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (sasha-npm-init-vs-generate-package)
version: (1.0.0) 0.1.0
description: npm init demo
entry point: (index.js)
test command: mocha
git repository: https://github.com/Kristinita/sasha-npm-init-vs-generate-package
keywords: generate, package, npm, package, sasha, vs
author: Sasha Chernykh
license: (ISC) MIT
About to write to D:/SashaDemoRepositories/sasha-npm-init-vs-generate-package/package.json:
{
"name": "sasha-npm-init-vs-generate-package",
"version": "0.1.0",
"description": "npm init demo",
"main": "index.js",
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Kristinita/sasha-npm-init-vs-generate-package.git"
},
"keywords": [
"generate",
"package",
"npm",
"package",
"sasha",
"vs"
],
"author": "Sasha Chernykh",
"license": "MIT",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package#readme"
}
Is this ok? (yes) y
{
"name": "sasha-npm-init-vs-generate-package",
"version": "0.1.0",
"description": "npm init demo",
"main": "index.js",
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/Kristinita/sasha-npm-init-vs-generate-package.git"
},
"keywords": [
"generate",
"package",
"npm",
"package",
"sasha",
"vs"
],
"author": "Sasha Chernykh",
"license": "MIT",
"bugs": {
"url": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package/issues"
},
"homepage": "https://github.com/Kristinita/sasha-npm-init-vs-generate-package#readme"
}
Creo que ese generate-package
más simple, que npm init
.
5. Personalización
Eso crea su propia plantilla package.json
, vea ejemplos de generate y de yeoman .
¿Se supone que package.json se edite manualmente? ¿No podría un programa como npm simplemente mirar los archivos, ver las declaraciones de "requerimiento" y luego usarlo para colocar las entradas necesarias en el archivo package.json? ¿Hay algún programa así?
Acabo de escribir un script simple para recopilar las dependencias en ./node_modules. Cumple con mis requerimientos en este momento. Esto puede ayudar a algunos otros, lo publico aquí.
var fs = require("fs");
function main() {
fs.readdir("./node_modules", function (err, dirs) {
if (err) {
console.log(err);
return;
}
dirs.forEach(function(dir){
if (dir.indexOf(".") !== 0) {
var packageJsonFile = "./node_modules/" + dir + "/package.json";
if (fs.existsSync(packageJsonFile)) {
fs.readFile(packageJsonFile, function (err, data) {
if (err) {
console.log(err);
}
else {
var json = JSON.parse(data);
console.log(''"''+json.name+''": "'' + json.version + ''",'');
}
});
}
}
});
});
}
main();
En mi caso, los resultados del script anterior:
"colors": "0.6.0-1",
"commander": "1.0.5",
"htmlparser": "1.7.6",
"optimist": "0.3.5",
"progress": "0.1.0",
"request": "2.11.4",
"soupselect": "0.2.0", // Remember: remove the comma character in the last line.
Ahora, puedes copiarlos y pegarlos. ¡Que te diviertas!
Ahora puede usar Yeoman - Modern Web App Scaffolding Tool en el terminal de nodo mediante 3 sencillos pasos.
En primer lugar, deberá instalar yo y otras herramientas necesarias:
$ npm install -g yo bower grunt-cli gulp
Para armar una aplicación web, instale el generador generador de aplicaciones web :
$ npm install -g generator-webapp // create scaffolding
Corre yo y ... ya terminaste
$ yo webapp // create scaffolding
Yeoman puede escribir código repetitivo para toda su aplicación web o Controladores y modelos. Puede activar un servidor web de vista previa en vivo para editar y compilar; no solo que también puede ejecutar sus pruebas unitarias, minimizar y concatenar su código, optimizar imágenes y más ...
Yeoman (yo) : herramienta de andamiaje que ofrece un ecosistema de andamios específicos del marco, llamados generadores, que se pueden utilizar para realizar algunas de las tareas tediosas mencionadas anteriormente.
Grunt / gulp : se utiliza para crear, previsualizar y probar su proyecto.
Bower : se utiliza para la administración de dependencias, por lo que ya no tiene que descargar manualmente las bibliotecas de aplicaciones para usuario.
Basado en la respuesta de Pylinux, a continuación se muestra una solución para el sistema operativo Windows:
dir node_modules > abc.txt
FOR /F %k in (abc.txt) DO npm install --save
Espero eso ayude.
Ejecutar npm init -y
hace que su package.json
con todos los valores predeterminados.
A continuación, puede cambiar package.json
consecuencia
Esto ahorra tiempo muchas veces al evitar presionar enter
en cada comando en npm init
En primer lugar, corre
npm init
... le hará algunas preguntas ( lea esto primero ) sobre su proyecto / paquete y luego genere un archivo package.json para usted.
Luego, una vez que tenga un archivo package.json, use
npm install <pkg> --save
o
npm install <pkg> --save-dev
... para instalar una dependencia y agregarla automáticamente a la lista de dependencies
su package.json
.
(Nota: Es posible que deba modificar manualmente los rangos de versión para sus dependencias).
use el comando npm init -f para generar el archivo package.json y luego use --save después de cada comando para que cada módulo se actualice automáticamente dentro de su package.json para ex: npm install express --save
npm init
para crear el archivo package.json y luego usas
ls node_modules/ |xargs npm install --save
para rellenar los módulos que tienes en la carpeta node_modules.
Edición: @paldepind señaló que el segundo comando es redundante porque npm init
ahora agrega automáticamente lo que tiene en su carpeta node_modules /. No sé si este ha sido siempre el caso, pero ahora al menos funciona sin el segundo comando.
Línea de comando :
npm init
creará el archivo package.json
Para instalar, actualizar y desinstalar paquetes en dependencias en el archivo package.json:
Línea de comando :
npm install <pkg>@* --save
agregará automáticamente la última versión del paquete bajo las dependencias en el archivo package.json
EX:
npm install node-markdown@* --save
Línea de comando :
npm install <pkg> --save
también agregará automáticamente la última versión del paquete bajo las dependencias en el archivo package.json
Si necesita una versión específica para un paquete, use esta línea de comando :
npm install <pkg>@<version> --save
agregará automáticamente una versión específica del paquete bajo las dependencias en el archivo package.json
EX:
npm install [email protected] --save
Si necesita un rango específico de versión para un paquete, use esta línea de comando :
npm install <pkg>@<version range>
agregará automáticamente la última versión del paquete entre el rango de la versión bajo las dependencias en el archivo package.json
EX:
npm install koa-views@">1.0.0 <1.2.0" --save
Para más detalles sobre cómo escribir la versión para el paquete npm Doc
Línea de comando :
npm update --save
actualizará los paquetes en el archivo package.json y agregará automáticamente la versión actualizada de todos los paquetes bajo las dependencias en el archivo package.json
Línea de comando :
npm uninstall <pkg> --save
eliminará automáticamente el paquete de las dependencias en el archivo package.json y eliminará el paquete de la carpeta node_module
Npm utiliza el archivo package.json para conocer su proyecto node.js.
Utilice npm init
para generar archivos package.json por usted!
Viene incluido con npm. Lea su documentación aquí: https://docs.npmjs.com/cli/init
Además, hay una herramienta que puede usar en sus propios proyectos para generar este archivo mediante programación (está hecho por el fabricante de npm): https://github.com/isaacs/init-package-json