package.json ควรแก้ไขด้วยตนเองหรือไม่ โปรแกรมอย่าง npm ไม่สามารถมองผ่านไฟล์ดูคำสั่ง "ต้องการ" แล้วใช้มันเพื่อใส่รายการที่จำเป็นในไฟล์ package.json มีโปรแกรมใด ๆ เช่นนั้นหรือไม่?
package.json ควรแก้ไขด้วยตนเองหรือไม่ โปรแกรมอย่าง npm ไม่สามารถมองผ่านไฟล์ดูคำสั่ง "ต้องการ" แล้วใช้มันเพื่อใส่รายการที่จำเป็นในไฟล์ package.json มีโปรแกรมใด ๆ เช่นนั้นหรือไม่?
คำตอบ:
ไฟล์ package.json ถูกใช้โดยnpmเพื่อเรียนรู้เกี่ยวกับโปรเจ็กต์ node.js ของคุณ
ใช้npm init
เพื่อสร้างไฟล์ package.json สำหรับคุณ!
มันมาพร้อมกับ npm อ่านเอกสารของที่นี่: https://docs.npmjs.com/cli/init
นอกจากนี้ยังมีเครื่องมืออย่างเป็นทางการที่คุณสามารถใช้เพื่อสร้างไฟล์นี้โดยทางโปรแกรม: https://github.com/npm/init-package-json
npm init
เป็นสิ่งที่ฉันกำลังมองหา! หลังจากนั้นฉันมักจะเรียกใช้npm shrinkwrap
เพื่อสร้างnpm-shrinkwrap.json
ไฟล์
npm init
: ใช้npm install <pkg> --save
หลังจากนั้นเพื่อติดตั้งแพ็กเกจและบันทึกเป็นการอ้างอิงในไฟล์ package.json
npm init
ใน Package Manager Console จาก Visual Studio 2015 มันจะแสดง[...] Press ^C at any time to quit.
และหยุดโดยไม่ถามอะไรเลยหรือสร้างไฟล์ json ฉันพลาดอะไรไปรึเปล่า?
npm init --force --yes
เป็นไฟล์เดียวที่สร้างไฟล์นี้
ก่อนอื่นให้เรียกใช้
npm init
... จะถามคำถามสองสามข้อ ( อ่านก่อนนี้ ) เกี่ยวกับโครงการ / แพ็คเกจของคุณจากนั้นสร้างไฟล์ package.json ให้คุณ
จากนั้นเมื่อคุณมีไฟล์ package.json ให้ใช้
npm install <pkg> --save
หรือ
npm install <pkg> --save-dev
... การติดตั้งการพึ่งพาและจะผนวกที่คุณpackage.json
's dependencies
รายการ
(หมายเหตุ: คุณอาจต้องปรับแต่งช่วงรุ่นสำหรับการอ้างอิงของคุณด้วยตนเอง)
package.json
โดยปกติจะจัดการโดยอัตโนมัติ
--save
ไม่จำเป็นอีกต่อไปในเวอร์ชัน npm ที่ใหม่กว่า
ฉันเพิ่งเขียนสคริปต์ง่าย ๆ เพื่อรวบรวมการอ้างอิงใน. / โหนด _modules มันตอบสนองความต้องการของฉันในขณะนี้ นี่อาจช่วยคนอื่นบ้างฉันโพสต์ไว้ที่นี่
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();
ในกรณีของฉันสคริปต์ด้านบนให้ผลลัพธ์:
"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.
ตอนนี้คุณสามารถคัดลอกและวางได้แล้ว มีความสุข!
npm ls --depth=0
จะพิมพ์เหมือนกันมากขึ้นหรือน้อยลง (ไม่แน่ใจว่าเป็นกรณีในปี 2012 หรือไม่)
a
และแพคเกจa
ความต้องการแพคเกจb
และc
สคริปต์นี้จะส่งออกทุกระดับดังนั้นa
, b
, c
ซึ่งเป็นไม่ถูกต้อง ควรให้ผลลัพธ์เท่านั้นa
แพ็คเกจย่อยจะได้รับการแก้ไขโดยอัตโนมัติ
npm init
เพื่อสร้างไฟล์ package.json จากนั้นคุณใช้
ls node_modules/ | xargs npm install --save
เพื่อเติมโมดูลที่คุณมีในโฟลเดอร์ node_modules
แก้ไข: @paldepind ชี้ให้เห็นว่าคำสั่งที่สองซ้ำซ้อนเพราะnpm init
ตอนนี้เพิ่มสิ่งที่คุณมีใน node_modules / โฟลเดอร์ของคุณโดยอัตโนมัติ ฉันไม่ทราบว่ากรณีนี้เป็นอย่างนั้นหรือไม่ แต่อย่างน้อยตอนนี้ก็ใช้ได้โดยไม่มีคำสั่งที่สอง
npm init
มีการเพิ่มการอ้างอิงโดยอัตโนมัติตามแพ็คเกจที่ติดตั้งและไม่จำเป็นต้องรันคำสั่งที่สอง
npm dedupe
ซึ่งดึงการขึ้นต่อกันที่ใช้ร่วมกันระหว่างโมดูลของคุณออกจากโมดูลเหล่านั้นและเก็บไว้ที่ระดับบนสุดของnode_modules
ไดเรกทอรีของคุณ แต่มันไม่ได้สัมผัสpackage.json
! ด้วยสิ่งนี้คุณสามารถคอมมิทและแชร์การตั้งค่าที่ซ้ำซ้อนของคุณ
บรรทัดคำสั่ง :
npm init
จะสร้างไฟล์ package.json
ในการติดตั้งอัพเดตและถอนการติดตั้งแพ็กเกจภายใต้การอ้างอิงลงในไฟล์ package.json:
บรรทัดคำสั่ง :
npm install <pkg>@* --save
จะเพิ่มเวอร์ชันล่าสุดสำหรับแพ็คเกจโดยอัตโนมัติภายใต้การอ้างอิงลงในไฟล์ package.json
EX:
npm install node-markdown@* --save
บรรทัดคำสั่ง :
npm install <pkg> --save
จะเพิ่มเวอร์ชันล่าสุดสำหรับแพ็คเกจโดยอัตโนมัติภายใต้การอ้างอิงลงในไฟล์ package.json
หากคุณต้องการเวอร์ชั่นเฉพาะสำหรับแพ็คเกจให้ใช้บรรทัดคำสั่งนี้:
npm install <pkg>@<version> --save
จะเพิ่มแพ็คเกจเฉพาะเวอร์ชันภายใต้การอ้างอิงลงในไฟล์ package.json โดยอัตโนมัติ
EX:
npm install koa-views@1.0.0 --save
หากคุณต้องการรุ่นที่เฉพาะเจาะจงสำหรับแพ็คเกจให้ใช้บรรทัดคำสั่งนี้:
npm install <pkg>@<version range>
จะเพิ่มเวอร์ชันล่าสุดสำหรับแพ็คเกจโดยอัตโนมัติระหว่างช่วงของรุ่นที่อยู่ภายใต้การอ้างอิงลงในไฟล์ package.json
EX:
npm install koa-views@">1.0.0 <1.2.0" --save
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีเขียนเวอร์ชันสำหรับแพ็คเกจnpm Doc
บรรทัดคำสั่ง :
npm update --save
จะอัปเดตแพ็คเกจเป็นไฟล์ package.json และจะเพิ่มเวอร์ชันที่อัปเดตโดยอัตโนมัติสำหรับแพ็คเกจทั้งหมดภายใต้การอ้างอิงลงในไฟล์ package.json
บรรทัดคำสั่ง :
npm uninstall <pkg> --save
จะลบแพ็กเกจออกจากการอ้างอิงลงในไฟล์ package.json โดยอัตโนมัติและลบแพ็กเกจออกจากโฟลเดอร์ node_module
การวิ่งnpm init -y
ทำให้คุณpackage.json
มีค่าเริ่มต้นทั้งหมด
จากนั้นคุณสามารถเปลี่ยนแปลงได้package.json
ตามต้องการ
สิ่งนี้ช่วยประหยัดเวลาได้หลายครั้งโดยป้องกันการกดenter
ทุกคำสั่งnpm init
ตอนนี้คุณสามารถใช้เครื่องมือนั่งร้าน Yeoman - Modern Web Appบนโหนดเทอร์มินัลโดยใช้ 3 ขั้นตอนง่ายๆ
ก่อนอื่นคุณจะต้องติดตั้ง Yo และเครื่องมือที่จำเป็นอื่น ๆ :
$ npm install -g yo bower grunt-cli gulp
หากต้องการนั่งร้านเว็บแอปพลิเคชันให้ติดตั้งgenerator-webapp generator:
$ npm install -g generator-webapp // create scaffolding
ทำงานกับคุณและ ... คุณทำเสร็จแล้ว:
$ yo webapp // create scaffolding
Yeoman สามารถเขียนโค้ดสำเร็จรูปสำหรับเว็บแอปพลิเคชันหรือตัวควบคุมและรุ่นทั้งหมดของคุณ สามารถเปิดเว็บเซิร์ฟเวอร์ตัวอย่างสดเพื่อแก้ไขและรวบรวม ไม่เพียงแค่คุณสามารถทำการทดสอบหน่วยของคุณย่อเล็กสุดและเชื่อมโยงโค้ดของคุณเพิ่มประสิทธิภาพของรูปภาพและอื่น ๆ ...
Yeoman (yo) - เครื่องมือนั่งร้านที่นำเสนอระบบนิเวศน์ของโครงนั่งร้านเฉพาะที่เรียกว่าเครื่องกำเนิดไฟฟ้าซึ่งสามารถใช้ในการทำงานที่น่าเบื่อบางอย่างที่กล่าวถึงก่อนหน้านี้
Grunt / gulp - ใช้ในการสร้างดูตัวอย่างและทดสอบโครงการของคุณ
Bower - ใช้สำหรับการจัดการการพึ่งพาเพื่อให้คุณไม่ต้องดาวน์โหลดไลบรารีส่วนหน้าของคุณอีกต่อไป
จากคำตอบของ Pylinux ด้านล่างเป็นโซลูชันสำหรับ Windows OS
dir node_modules > abc.txt
FOR /F %k in (abc.txt) DO npm install --save
หวังว่ามันจะช่วย
ใช้คำสั่ง npm init -f เพื่อสร้างไฟล์ package.json และหลังจากนั้นใช้ - บันทึกหลังจากแต่ละคำสั่งเพื่อให้แต่ละโมดูลจะได้รับการอัปเดตโดยอัตโนมัติภายใน package.json ของคุณสำหรับ ex: npm install express --save
หากคุณ git และผู้ใช้ GitHub:
generate-package
npm init
ขึ้นเพียงกว่า
อื่น
และ / หรือคุณไม่ชอบpackage.json
เทมเพลตที่สร้างแพ็คเกจหรือnpm init
สร้าง:
คุณสามารถสร้างแม่แบบของคุณเองผ่านทางแอพพลิเคนั่งร้านเป็นสร้าง , เรือหรือองค์รักษ์
คำตอบนี้มีความเกี่ยวข้องสำหรับมีนาคม 2018 ในอนาคตข้อมูลจากคำตอบนี้อาจจะล้าสมัย
ผู้เขียนคำตอบนี้ใช้สร้างแพ็คเกจด้วยตนเองในเดือนมีนาคม 2561
คุณต้องใช้ git และ GitHub เพื่อใช้แพ็คเกจ
sasha-npm-init-vs-generate-package
ตัวอย่างเช่นผมสร้างโฟลเดอร์ว่างเปล่า
คำสั่ง:
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"
]
}
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"
}
ผมคิดว่าที่generate-package
อื่น ๆ npm init
อีกมากมายเพียงแค่ว่า
ที่สร้างpackage.json
แม่แบบของคุณเองดูสร้างและตัวอย่างที่เป็นประโยชน์
npm link