Node.js
package.json
खोज…
टिप्पणियों
आप के साथ package.json
बना सकते हैं
npm init
जो आपसे लाइसेंस पहचानकर्ता सहित आपकी परियोजनाओं के बारे में बुनियादी तथ्यों के बारे में पूछेगा।
मूल परियोजना की परिभाषा
{
"name": "my-project",
"version": "0.0.1",
"description": "This is a project.",
"author": "Someone <[email protected]>",
"contributors": [{
"name": "Someone Else",
"email": "[email protected]"
}],
"keywords": ["improves", "searching"]
}
खेत | विवरण |
---|---|
नाम | स्थापित करने के लिए पैकेज के लिए एक आवश्यक फ़ील्ड। रिक्त स्थान के बिना लोअरकेस, सिंगल शब्द की आवश्यकता है। (डैश और अंडरस्कोर की अनुमति है) |
संस्करण | सिमेंटिक संस्करण का उपयोग करके पैकेज संस्करण के लिए एक आवश्यक फ़ील्ड। |
विवरण | परियोजना का संक्षिप्त विवरण |
लेखक | पैकेज के लेखक को निर्दिष्ट करता है |
योगदानकर्ताओं | वस्तुओं की एक सरणी, प्रत्येक योगदानकर्ता के लिए एक |
कीवर्ड | तार की एक सरणी, यह लोगों को आपके पैकेज को खोजने में मदद करेगा |
निर्भरता
"निर्भरता": {"मॉड्यूल-नाम": "0.1.0"}
- सटीक :
0.1.0
मॉड्यूल के उस विशिष्ट संस्करण को स्थापित करेगा। - नवीनतम मामूली संस्करण :
^0.1.0
नवीनतम मामूली संस्करण स्थापित करेगा, उदाहरण के लिए0.2.0
, लेकिन उच्चतर प्रमुख संस्करण जैसे मॉड्यूल स्थापित नहीं करेगा जैसे कि1.0.0
- नवीनतम पैच :
0.1.x
या~0.1.0
नवीनतम पैच संस्करण को स्थापित करेगा, उदाहरण के लिए0.1.4
, लेकिन उच्चतर या लघु संस्करण के साथ एक मॉड्यूल स्थापित नहीं करेगा, जैसे0.2.0
या1.0.0
। - वाइल्डकार्ड :
*
मॉड्यूल का नवीनतम संस्करण स्थापित करेगा। - git रिपॉजिटरी : निम्नलिखित git रेपो की मास्टर शाखा से एक टारबॉल स्थापित करेगा। एक
#sha
,#tag
या#branch
भी प्रदान किया जा सकता है:- गिटहब :
user/project
याuser/project#v1.0.0
- url :
git://gitlab.com/user/project.git
याgit://gitlab.com/user/project.git#develop
- गिटहब :
- स्थानीय पथ :
file:../lib/project
उन्हें अपने package.json में जोड़ने के बाद, टर्मिनल में अपने प्रोजेक्ट डायरेक्टरी में कमांड npm install
उपयोग करें।
devDependencies
"devDependencies": {
"module-name": "0.1.0"
}
केवल विकास के लिए आवश्यक निर्भरता के लिए, परीक्षण स्टाइल प्रॉक्स की तरह। जब उत्पादन मोड में "npm स्थापित" चल रहा है, तो उन देव-निर्भरताओं को स्थापित नहीं किया जाएगा।
स्क्रिप्ट
आप उन स्क्रिप्ट को परिभाषित कर सकते हैं, जिन्हें किसी अन्य स्क्रिप्ट से पहले या बाद में निष्पादित या ट्रिगर किया जा सकता है।
{
"scripts": {
"pretest": "scripts/pretest.js",
"test": "scripts/test.js",
"posttest": "scripts/posttest.js"
}
}
इस स्थिति में, आप इनमें से कोई भी आदेश चलाकर स्क्रिप्ट निष्पादित कर सकते हैं:
$ npm run-script test
$ npm run test
$ npm test
$ npm t
पूर्व-परिभाषित स्क्रिप्ट
लिपि का नाम | विवरण |
---|---|
prepublish | पैकेज प्रकाशित होने से पहले चलाएं। |
प्रकाशित करना, पोस्टप्रेम | पैकेज प्रकाशित होने के बाद चलाएँ। |
preinstall | पैकेज स्थापित होने से पहले चलाएँ। |
स्थापित करें, स्थापना रद्द करें | पैकेज स्थापित होने के बाद चलाएँ। |
preuninstall, अनइंस्टॉल करें | पैकेज की स्थापना रद्द होने से पहले चलाएं। |
postuninstall | पैकेज की स्थापना रद्द होने के बाद चलाएँ। |
संस्करण, संस्करण | पैकेज संस्करण को टक्कर देने से पहले चलाएं। |
postversion | पैकेज संस्करण को टक्कर देने के बाद चलाएँ। |
बहाना, परीक्षण, posttest | npm test कमांड द्वारा चलाएँ |
प्रेस्टॉप, स्टॉप, पोस्टस्टॉप | npm stop कमांड द्वारा चलाएं |
prestart, start, poststart | npm start कमांड द्वारा चलाएं |
पूर्वगामी, पुनः आरंभ, पोस्टस्टार्ट | npm restart कमांड द्वारा चलाएँ |
उपयोगकर्ता-परिभाषित स्क्रिप्ट
आप अपनी स्वयं की लिपियों को उसी तरह परिभाषित कर सकते हैं जैसे आप पूर्व-निर्धारित लिपियों के साथ करते हैं:
{
"scripts": {
"preci": "scripts/preci.js",
"ci": "scripts/ci.js",
"postci": "scripts/postci.js"
}
}
इस स्थिति में, आप इन आदेशों को चलाकर स्क्रिप्ट निष्पादित कर सकते हैं:
$ npm run-script ci
$ npm run ci
उपयोगकर्ता-परिभाषित स्क्रिप्ट भी पूर्व और बाद की स्क्रिप्ट का समर्थन करती है, जैसा कि ऊपर दिए गए उदाहरण में दिखाया गया है।
विस्तारित परियोजना परिभाषा
कुछ अतिरिक्त विशेषताओं को npm वेबसाइट द्वारा repository
, bugs
या homepage
द्वारा पार्स किया गया है और इन पैकेजों के लिए इन्फोबॉक्स में दिखाया गया है
{
"main": "server.js",
"repository" : {
"type": "git",
"url": "git+https://github.com/<accountname>/<repositoryname>.git"
},
"bugs": {
"url": "https://github.com/<accountname>/<repositoryname>/issues"
},
"homepage": "https://github.com/<accountname>/<repositoryname>#readme",
"files": [
"server.js", // source files
"README.md", // additional files
"lib" // folder with all included files
]
}
खेत | विवरण |
---|---|
मुख्य | इस पैकेज के लिए प्रवेश स्क्रिप्ट। उपयोगकर्ता द्वारा पैकेज की आवश्यकता होने पर यह स्क्रिप्ट वापस कर दी जाती है। |
कोष | सार्वजनिक रिपॉजिटरी का स्थान और प्रकार |
कीड़े | इस पैकेज के लिए बगट्रेटर (जैसे जीथूब) |
होमपेज | इस पैकेज या सामान्य परियोजना के लिए मुखपृष्ठ |
फ़ाइलें | उन फ़ाइलों और फ़ोल्डरों की सूची, जिन्हें किसी उपयोगकर्ता द्वारा npm install <packagename> डाउनलोड किया जाना चाहिए npm install <packagename> |
Exploring package.json
एक package.json
फ़ाइल, आमतौर पर परियोजना जड़ में मौजूद है, जब चल NPM से स्थापित करने के लिए अपने अनुप्रयोग या मॉड्यूल के बारे में मेटाडाटा के साथ ही निर्भरता की सूची होती है npm install
।
अपने कमांड प्रॉम्प्ट में package.json
टाइप npm init
को इनिशियलाइज़ करने के लिए।
एक package.json
बनाने के लिए package.json
डिफ़ॉल्ट मूल्यों के साथ package.json
उपयोग करें:
npm init --yes
# or
npm init -y
एक पैकेज स्थापित करने और इसे बचाने के लिए package.json
उपयोग के लिए:
npm install {package name} --save
आप शॉर्टहैंड नोटेशन का भी उपयोग कर सकते हैं:
npm i -S {package name}
एनपीएम उपनाम -S
से --save
और -D
से --save-dev
को क्रमशः अपने उत्पादन या विकास निर्भरता में बचाने के लिए।
पैकेज आपकी निर्भरता में दिखाई देगा; अगर आप का उपयोग --save-dev
के बजाय --save
, पैकेज आपके devDependencies में दिखाई देगा।
package.json
महत्वपूर्ण गुण:
{
"name": "module-name",
"version": "10.3.1",
"description": "An example module to illustrate the usage of a package.json",
"author": "Your Name <[email protected]>",
"contributors": [{
"name": "Foo Bar",
"email": "[email protected]"
}],
"bin": {
"module-name": "./bin/module-name"
},
"scripts": {
"test": "vows --spec --isolate",
"start": "node index.js",
"predeploy": "echo About to deploy",
"postdeploy": "echo Deployed",
"prepublish": "coffee --bare --compile --output lib/foo src/foo/*.coffee"
},
"main": "lib/foo.js",
"repository": {
"type": "git",
"url": "https://github.com/username/repo"
},
"bugs": {
"url": "https://github.com/username/issues"
},
"keywords": [
"example"
],
"dependencies": {
"express": "4.2.x"
},
"devDependencies": {
"assume": "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
},
"peerDependencies": {
"moment": ">2.0.0"
},
"preferGlobal": true,
"private": true,
"publishConfig": {
"registry": "https://your-private-hosted-npm.registry.domain.com"
},
"subdomain": "foobar",
"analyze": true,
"license": "MIT",
"files": [
"lib/foo.js"
]
}
कुछ महत्वपूर्ण गुणों के बारे में जानकारी:
name
आपके पैकेज का अद्वितीय नाम और लोअरकेस में नीचे होना चाहिए। यह संपत्ति आवश्यक है और इसके बिना आपका पैकेज स्थापित नहीं होगा।
- नाम 214 वर्णों से कम या उसके बराबर होना चाहिए।
- नाम डॉट या अंडरस्कोर से शुरू नहीं हो सकता।
- नए पैकेज में नाम में बड़े अक्षर नहीं होने चाहिए।
version
पैकेज का संस्करण शब्दार्थ संस्करण (सेमर) द्वारा निर्दिष्ट किया गया है। जो मानता है कि एक संस्करण संख्या MAJOR.MINOR.PATCH के रूप में लिखी गई है और आप वेतन वृद्धि करते हैं:
- जब आप असंगत एपीआई परिवर्तन करते हैं तो MAJOR संस्करण
- जब आप बैकवर्ड-संगत तरीके से कार्यक्षमता जोड़ते हैं तो मामूली संस्करण
- जब आप पीछे की ओर संगत बग फिक्स करते हैं तो पैटच संस्करण
description
परियोजना का वर्णन। इसे छोटा और संक्षिप्त रखने की कोशिश करें।
author
इस पैकेज के लेखक।
bin
एक वस्तु जिसका उपयोग आपके पैकेज से द्विआधारी स्क्रिप्ट को उजागर करने के लिए किया जाता है। ऑब्जेक्ट मानता है कि कुंजी बाइनरी स्क्रिप्ट का नाम है और स्क्रिप्ट के सापेक्ष पथ है।
इस संपत्ति का उपयोग उन पैकेजों द्वारा किया जाता है जिनमें एक CLI (कमांड लाइन इंटरफ़ेस) होता है।
script
एक वस्तु जो अतिरिक्त npm कमांड को उजागर करती है। ऑब्जेक्ट मानता है कि कुंजी npm कमांड है और मान स्क्रिप्ट पथ है। जब आप npm run {command name}
या npm run-script {command name}
चलाते हैं, तो ये स्क्रिप्ट निष्पादित हो सकती हैं।
पैकेज जिसमें कमांड लाइन इंटरफ़ेस होता है और स्थानीय रूप से इंस्टॉल किया जाता है, बिना रिश्तेदार पथ के कहा जा सकता है। इसलिए कॉल करने के बजाय ./node-modules/.bin/mocha
आप सीधे mocha
कह सकते हैं।
main
आपके पैकेज का मुख्य प्रवेश बिंदु। जब कॉलिंग नोड में require('{module name}')
, तो यह वास्तविक फ़ाइल होगी जो आवश्यक है।
यह अत्यधिक सलाह दी जाती है कि मुख्य फ़ाइल की आवश्यकता किसी भी पक्ष को प्रभावित नहीं करती है। उदाहरण के लिए, मुख्य फ़ाइल के लिए HTTP सर्वर शुरू नहीं होना चाहिए या डेटाबेस से कनेक्ट नहीं होना चाहिए। इसके बजाय, आपको अपनी मुख्य स्क्रिप्ट में exports.init = function () {...}
जैसा कुछ बनाना चाहिए।
keywords
कीवर्ड की एक सरणी जो आपके पैकेज का वर्णन करती है। ये लोगों को आपके पैकेज को खोजने में मदद करेंगे।
devDependencies
ये निर्भरताएँ हैं जो केवल आपके मॉड्यूल के विकास और परीक्षण के लिए अभिप्रेत हैं। जब तक NODE_ENV=production
वातावरण चर सेट नहीं किया गया है, तब तक निर्भरता स्वचालित रूप से स्थापित हो जाएगी। अगर ऐसा है तो आप npm install --dev
का उपयोग करके इन पैकेजों को प्राप्त कर सकते हैं
peerDependencies
यदि आप इस मॉड्यूल का उपयोग कर रहे हैं, तो सह-निर्भरता उन मॉड्यूल को सूचीबद्ध करती है जिन्हें आपको इस एक के साथ स्थापित करना होगा। उदाहरण के लिए, moment-timezone
को moment
साथ स्थापित किया जाना चाहिए क्योंकि यह पल के लिए एक प्लगइन है, भले ही इसके लिए सीधे require("moment")
न हो।
preferGlobal
एक संपत्ति जो इंगित करती है कि यह पृष्ठ npm install -g {module-name}
का उपयोग करके विश्व स्तर पर स्थापित होना पसंद करता है। इस संपत्ति का उपयोग उन पैकेजों द्वारा किया जाता है जिनमें एक CLI (कमांड लाइन इंटरफ़ेस) होता है।
अन्य सभी स्थितियों में आपको इस संपत्ति का उपयोग नहीं करना चाहिए।
publishConfig
पब्लिशकॉन्फिग विन्यास मूल्यों के साथ एक वस्तु है जिसका उपयोग प्रकाशन मॉड्यूल के लिए किया जाएगा। कॉन्फ़िगरेशन मान सेट किए गए हैं जो आपके डिफ़ॉल्ट npm कॉन्फ़िगरेशन को ओवरराइड करते हैं।
publishConfig
का सबसे आम उपयोग अपने पैकेज को एक निजी एनपीएम रजिस्ट्री पर प्रकाशित करना है ताकि आपको अभी भी एनपीएम के फायदे मिलें लेकिन निजी पैकेज के लिए। यह रजिस्ट्री कुंजी के मूल्य के रूप में आपके निजी npm के URL को सेट करके किया जाता है।
files
यह प्रकाशित पैकेज में शामिल करने के लिए सभी फाइलों की एक सरणी है। या तो एक फ़ाइल पथ या फ़ोल्डर पथ का उपयोग किया जा सकता है। एक फ़ोल्डर पथ की सभी सामग्री शामिल होगी। यह आपके द्वारा वितरित की जाने वाली सही फ़ाइलों को शामिल करके केवल आपके पैकेज के कुल आकार को कम करता है। यह फ़ील्ड .npmignore
नियम फ़ाइल के साथ संयोजन के रूप में काम करती है।