Package.json का उपयोग करके वैश्विक और स्थानीय स्तर पर निर्भरताएं स्थापित करें


189

Npm का उपयोग करके हम -gविकल्प का उपयोग करके विश्व स्तर पर मॉड्यूल स्थापित कर सकते हैं । हम पैकेज.जोन फ़ाइल में यह कैसे कर सकते हैं?

मान लीजिए, ये package.json फ़ाइल में मेरी निर्भरताएँ हैं

"dependencies": {
    "mongoose": "1.4.0",
    "node.io" : "0.3.3",
    "jquery"  : "1.5.1",
    "jsdom"   : "0.2.0",
    "cron"    : "0.1.2"
  }

जब मैं दौड़ता npm installहूं, तो मैं केवल node.ioविश्व स्तर पर स्थापित होना चाहता हूं , बाकी अन्य को स्थानीय रूप से स्थापित किया जाना चाहिए। क्या इसके लिए कोई विकल्प है?


11
आप नहीं कर सकते। हालाँकि आप "preferGlobal": trueकिसी मॉड्यूल के लिए package.json के अंदर सेट कर सकते हैं ।
रेयनोस

हाँ, मुझे पता है कि <code> तरजीह </ code> के बारे में, लेकिन यह विश्व स्तर पर सभी निर्भरता स्थापित करेगा ... वैसे भी धन्यवाद! मुझे लगता है कि इस तरह की कोई विशेषता नहीं है ...
मधुसूदन

3
मुझे नहीं लगता कि यह करता है। यह मौजूदा मॉड्यूल को ग्लोबली स्थापित करता है। यदि एक व्यक्तिगत निर्भरता ने इसे सच कर दिया है तो यह विश्व स्तर पर भी स्थापित हो सकता है। वास्तव में आपको बस # नोड में पूछना चाहिए @ nac.js
रेयनोस

3
वैश्विक प्रतिष्ठान निर्भरता नरक का उत्पादन कर सकते हैं। पैकेज ए कहें कि संस्करण 0.3.3 और पैकेज बी संस्करण 0.3.4 की जरूरत है और दोनों दूसरे संस्करण के साथ काम नहीं करते हैं। फिर आपको दो पैकेजों को व्यवस्थित करने के लिए दो मशीनों की आवश्यकता होगी।
नागवार

6
इन टिप्पणियों में से कोई भी मुझे इस मुद्दे के साथ मदद नहीं करता है ... यह अच्छा होगा यदि आप मुझे कोड दिखाते हैं तो बस "preferGlobal":true... मुझे वास्तव में नहीं पता है कि इसे पैकेज में कहां रखा जाना चाहिए। npmjs.org/doc/json.html एनपीएम प्रलेखन का कहना है कि तरजीह आपके खुद के पैकेज के लिए है और इसे स्थापित करने से यह एक वैश्विक के रूप में आपके स्वयं के पैकेज को स्थापित करेगा। यह एक गाइड के अधिक की तरह लगता है, यद्यपि।
पीपीपॉल

जवाबों:


216

नया नोट: आप शायद ऐसा नहीं करना चाहते या करना चाहते हैं। जो आप शायद करना चाहते हैं, वह सिर्फ devDependenciesआपके पैकेज के खंड में निर्माण / परीक्षण आदि के लिए उन प्रकार की कमांड निर्भरताएं हैं । जब भी आप scriptsपैकेज में से कुछ का उपयोग करते हैं । अपनी डिडेंडिबिलिटी कमांड (नोड_मॉड्यूल्स / .बीन में) का प्रयोग करें जैसे कि वे आपके रास्ते में हों।

उदाहरण के लिए:

npm i --save-dev mocha # Install test runner locally
npm i --save-dev babel # Install current babel locally

फिर पैकेज में। संदेश:

// devDependencies has mocha and babel now

"scripts": {
  "test": "mocha",
  "build": "babel -d lib src",
  "prepublish": "babel -d lib src"
}

फिर अपने कमांड प्रॉम्प्ट पर आप चला सकते हैं:

npm run build # finds babel
npm test # finds mocha

npm publish # will run babel first

लेकिन अगर आप वास्तव में विश्व स्तर पर स्थापित करना चाहते हैं, तो आप package.json के स्क्रिप्ट अनुभाग में एक प्रीइंस्टॉलेशन जोड़ सकते हैं:

"scripts": {
  "preinstall": "npm i -g themodule"
}

तो वास्तव में मेरे npm स्थापित फिर से npm स्थापित निष्पादित करता है .. जो अजीब है, लेकिन काम करने लगता है।

नोट: यदि आपके पास npmवैश्विक नोड पैकेज स्थापित करने के लिए सबसे सामान्य सेटअप का उपयोग कर रहे हैं तो आपके पास समस्याएँ हो सकती हैं sudo। एक विकल्प आपके npmकॉन्फ़िगरेशन को बदलना है, इसलिए यह आवश्यक नहीं है:

npm config set prefix ~/npm, जोड़कर $ HOME / NPM / bin $ पथ पर जोड़ने के export PATH=$HOME/npm/bin:$PATHअपने को ~/.bashrc


3
मैं इसके साथ काम करने में सक्षम नहीं था npm i -g underscore-cli। यह wd के गलत होने के बारे में एक चेतावनी देता है। wd का मतलब है वर्किंग डायरेक्टरी, मुझे लगता है। जब मैं मैन्युअल रूप से कमांड लाइन पर ऐसा करता हूं, तो चीजें अच्छी तरह से हो जाती हैं, हालांकि मैं पसंद करूंगा कि क्या उपयोगकर्ता मेरे कोड को एक साधारण के साथ स्थापित करने में सक्षम होnpm install
PPPaul

3
PPPaul - हाल ही में जब मैंने इस ट्रिक को दोबारा आजमाया तो मुझे भी यही समस्या हुई। शायद मेरा सेटअप अब अलग है या यह केवल कुछ मॉड्यूल के साथ काम करता है। अन्यथा मुझे लगता है कि npm के साथ कुछ बदल गया है?
जेसन लिवेसे

9
इसके अलावा आप पहले से ही जांच कर सकते हैं कि क्या पैकेज पहले से स्थापित है: npm list module -g || npm install module -gक्योंकि npm उचित निकास मान लौटाएगा।
m90

3
@CMCDragonkai: यह वास्तव में एक अलग प्रश्न होना चाहिए। लेकिन, आप अपने कमांड को स्क्रिप्ट में रखते हैं, और स्क्रिप्ट को निष्पादित करने के लिए कमांड के रूप में निर्दिष्ट करते हैं (जैसे "preinstall" : "scripts/preinstall.sh")।
हम सभी मोनिका

1
&&उदाहरण के लिए @CMCDragonkai उनके साथ npm install -g bower && npm install -g grunt-cli
मिलते हैं

12

नीचे वर्णित नुकसान के कारण, मैं स्वीकृत उत्तर का पालन करने की सलाह दूंगा:

npm install --save-dev [package_name]इसके बाद स्क्रिप्ट का उपयोग करें :

$ npm run lint
$ npm run build
$ npm test

मेरा मूल लेकिन अनुशंसित उत्तर नहीं है।


वैश्विक इंस्टॉल का उपयोग करने के बजाय, आप पैकेज को अपने devDependencies( --save-dev) में जोड़ सकते हैं और फिर अपने प्रोजेक्ट के अंदर कहीं से भी बाइनरी चला सकते हैं:

"$(npm bin)/<executable_name>" <arguments>...

आपके मामले में:

"$(npm bin)"/node.io --help

इस इंजीनियर ने npm-execशॉर्टकट के रूप में एक उर्फ प्रदान किया । यह इंजीनियर एक शेलस्क्रिप्ट का उपयोग करता है जिसे कहा जाता है env.sh। लेकिन मैं $(npm bin)किसी भी अतिरिक्त फ़ाइल या सेटअप से बचने के लिए सीधे उपयोग करना पसंद करता हूं ।

हालांकि यह प्रत्येक कॉल थोड़ा बड़ा बनाता है, यह होना चाहिए सिर्फ काम को रोकने:

  • वैश्विक पैकेजों के साथ संभावित निर्भरता का सामना करना पड़ता है (@nalply)
  • की जरूरत sudo
  • एक npm उपसर्ग स्थापित करने की आवश्यकता है (हालांकि मैं किसी एक का उपयोग करने की सलाह देता हूं)

नुकसान:

  • $(npm bin) विंडोज पर काम नहीं करेगा।
  • आपके देव वृक्ष की गहराई वाले उपकरण npm binफ़ोल्डर में दिखाई नहीं देंगे । ( Npm-run या npm- स्थापित करें -जो उन्हें ढूंढना है।)

ऐसा लगता है कि एक बेहतर उपाय यह है कि सामान्य कार्यों (जैसे भवन और निर्माण) को "स्क्रिप्ट" खंड में रखा जाए package.json, जैसा कि जेसन ने ऊपर दिखाया है।


.bashrcआसानी bin/से अपने PATHपर्यावरण चर में निर्देशिका जोड़ने के लिए अपने में एक उपनाम जोड़ें alias nodebin='export PATH=$(npm bin)/:$PATH':। निष्पादित करें nodebinऔर फिर आप हमेशा की तरह अपनी कमांड टाइप कर सकते हैं।
गीताकार

मुझे नहीं पता कि यह टीमों के लिए काम क्यों नहीं करेगा। बेशक आपको इसे स्थापित करने की आवश्यकता है, और यदि आप अपनी पसंद के उपनाम का उपयोग करना पसंद नहीं करते हैं। लेकिन एक टीम में इसका इस्तेमाल करने में कोई हर्ज नहीं है।
गीताकार

9

यह थोड़ा पुराना है, लेकिन मैं आवश्यकता में भाग गया इसलिए यहाँ समाधान है जो मैं लेकर आया हूँ।

समस्या:

हमारी विकास टीम कई .NET वेब अनुप्रयोग उत्पादों को बनाए रखती है, जिन्हें हम AngularJS / बूटस्ट्रैप में स्थानांतरित कर रहे हैं। VS2010 कस्टम बिल्ड प्रक्रियाओं में आसानी से उधार नहीं देता है और मेरे डेवलपर्स नियमित रूप से हमारे उत्पादों के कई रिलीज पर काम कर रहे हैं। हमारा वीसीएस तोड़फोड़ है (मुझे पता है, मुझे पता है। मैं गिट में जाने की कोशिश कर रहा हूं, लेकिन मेरे पेसकी मार्केटिंग स्टाफ की इतनी मांग है) और एक एकल वीएस समाधान में कई अलग-अलग प्रोजेक्ट शामिल होंगे। मुझे अपने कर्मचारियों को एक ही मशीन पर कई बार एक ही नोड पैकेज (गुलप, बोवर, आदि) स्थापित किए बिना अपने विकास के माहौल को शुरू करने के लिए एक सामान्य विधि की आवश्यकता थी।

टी एल; डॉ:

  1. वैश्विक नोड / बोवर विकास वातावरण और साथ ही .NET उत्पाद के लिए स्थानीय स्तर पर आवश्यक पैकेजों को स्थापित करने के लिए "npm इंस्टॉल" की आवश्यकता है।

  2. ग्लोबल पैकेज तभी इंस्टॉल किए जाने चाहिए, जब पहले से इंस्टॉल न हों।

  3. वैश्विक पैकेजों के लिए स्थानीय लिंक स्वचालित रूप से बनाए जाने चाहिए।

समाधान:

हमारे पास पहले से ही सभी डेवलपर्स और सभी उत्पादों द्वारा साझा किया गया एक समान विकास ढांचा है, इसलिए मैंने जरूरत पड़ने पर वैश्विक पैकेज स्थापित करने और स्थानीय लिंक बनाने के लिए एक NodeJS स्क्रिप्ट बनाई। स्क्रिप्ट उत्पाद आधार फ़ोल्डर के सापेक्ष ".... \ SharedFiles" में रहता है:

/*******************************************************************************
* $Id: npm-setup.js 12785 2016-01-29 16:34:49Z sthames $
* ==============================================================================
* Parameters: 'links' - Create links in local environment, optional.
* 
* <p>NodeJS script to install common development environment packages in global
* environment. <c>packages</c> object contains list of packages to install.</p>
* 
* <p>Including 'links' creates links in local environment to global packages.</p>
* 
* <p><b>npm ls -g --json</b> command is run to provide the current list of 
* global packages for comparison to required packages. Packages are installed 
* only if not installed. If the package is installed but is not the required 
* package version, the existing package is removed and the required package is 
* installed.</p>.
*
* <p>When provided as a "preinstall" script in a "package.json" file, the "npm
* install" command calls this to verify global dependencies are installed.</p>
*******************************************************************************/
var exec = require('child_process').exec;
var fs   = require('fs');
var path = require('path');

/*---------------------------------------------------------------*/
/* List of packages to install and 'from' value to pass to 'npm  */
/* install'. Value must match the 'from' field in 'npm ls -json' */
/* so this script will recognize a package is already installed. */
/*---------------------------------------------------------------*/
var packages = 
  {
  "bower"                      :                      "bower@1.7.2", 
  "event-stream"               :               "event-stream@3.3.2",
  "gulp"                       :                       "gulp@3.9.0",
  "gulp-angular-templatecache" : "gulp-angular-templatecache@1.8.0",
  "gulp-clean"                 :                 "gulp-clean@0.3.1", 
  "gulp-concat"                :                "gulp-concat@2.6.0",
  "gulp-debug"                 :                 "gulp-debug@2.1.2",
  "gulp-filter"                :                "gulp-filter@3.0.1",
  "gulp-grep-contents"         :         "gulp-grep-contents@0.0.1",
  "gulp-if"                    :                    "gulp-if@2.0.0", 
  "gulp-inject"                :                "gulp-inject@3.0.0", 
  "gulp-minify-css"            :            "gulp-minify-css@1.2.3",
  "gulp-minify-html"           :           "gulp-minify-html@1.0.5",
  "gulp-minify-inline"         :         "gulp-minify-inline@0.1.1",
  "gulp-ng-annotate"           :           "gulp-ng-annotate@1.1.0",
  "gulp-processhtml"           :           "gulp-processhtml@1.1.0",
  "gulp-rev"                   :                   "gulp-rev@6.0.1",
  "gulp-rev-replace"           :           "gulp-rev-replace@0.4.3",
  "gulp-uglify"                :                "gulp-uglify@1.5.1",
  "gulp-useref"                :                "gulp-useref@3.0.4",
  "gulp-util"                  :                  "gulp-util@3.0.7",
  "lazypipe"                   :                   "lazypipe@1.0.1",
  "q"                          :                          "q@1.4.1",
  "through2"                   :                   "through2@2.0.0",

  /*---------------------------------------------------------------*/
  /* fork of 0.2.14 allows passing parameters to main-bower-files. */
  /*---------------------------------------------------------------*/
  "bower-main"                 : "git+https://github.com/Pyo25/bower-main.git" 
  }

/*******************************************************************************
* run */
/**
* Executes <c>cmd</c> in the shell and calls <c>cb</c> on success. Error aborts.
* 
* Note: Error code -4082 is EBUSY error which is sometimes thrown by npm for 
* reasons unknown. Possibly this is due to antivirus program scanning the file 
* but it sometimes happens in cases where an antivirus program does not explain 
* it. The error generally will not happen a second time so this method will call 
* itself to try the command again if the EBUSY error occurs.
* 
* @param  cmd  Command to execute.
* @param  cb   Method to call on success. Text returned from stdout is input.
*******************************************************************************/
var run = function(cmd, cb)
  {
  /*---------------------------------------------*/
  /* Increase the maxBuffer to 10MB for commands */
  /* with a lot of output. This is not necessary */
  /* with spawn but it has other issues.         */
  /*---------------------------------------------*/
  exec(cmd, { maxBuffer: 1000*1024 }, function(err, stdout)
    {
    if      (!err)                   cb(stdout);
    else if (err.code | 0 == -4082) run(cmd, cb);
    else throw err;
    });
  };

/*******************************************************************************
* runCommand */
/**
* Logs the command and calls <c>run</c>.
*******************************************************************************/
var runCommand = function(cmd, cb)
  {
  console.log(cmd);
  run(cmd, cb);
  }

/*******************************************************************************
* Main line
*******************************************************************************/
var doLinks  = (process.argv[2] || "").toLowerCase() == 'links';
var names    = Object.keys(packages);
var name;
var installed;
var links;

/*------------------------------------------*/
/* Get the list of installed packages for   */
/* version comparison and install packages. */
/*------------------------------------------*/
console.log('Configuring global Node environment...')
run('npm ls -g --json', function(stdout)
  {
  installed = JSON.parse(stdout).dependencies || {};
  doWhile();
  });

/*--------------------------------------------*/
/* Start of asynchronous package installation */
/* loop. Do until all packages installed.     */
/*--------------------------------------------*/
var doWhile = function()
  {
  if (name = names.shift())
    doWhile0();
  }

var doWhile0 = function()
  {
  /*----------------------------------------------*/
  /* Installed package specification comes from   */
  /* 'from' field of installed packages. Required */
  /* specification comes from the packages list.  */
  /*----------------------------------------------*/
  var current  = (installed[name] || {}).from;
  var required =   packages[name];

  /*---------------------------------------*/
  /* Install the package if not installed. */
  /*---------------------------------------*/
  if (!current)
    runCommand('npm install -g '+required, doWhile1);

  /*------------------------------------*/
  /* If the installed version does not  */
  /* match, uninstall and then install. */
  /*------------------------------------*/
  else if (current != required)
    {
    delete installed[name];
    runCommand('npm remove -g '+name, function() 
      {
      runCommand('npm remove '+name, doWhile0);
      });
    }

  /*------------------------------------*/
  /* Skip package if already installed. */
  /*------------------------------------*/
  else
    doWhile1();
  };

var doWhile1 = function()
  {
  /*-------------------------------------------------------*/
  /* Create link to global package from local environment. */
  /*-------------------------------------------------------*/
  if (doLinks && !fs.existsSync(path.join('node_modules', name)))
    runCommand('npm link '+name, doWhile);
  else
    doWhile();
  };

अब अगर मैं अपने डेवलपर्स के लिए एक वैश्विक टूल अपडेट करना चाहता हूं, तो मैं "पैकेज" ऑब्जेक्ट को अपडेट करता हूं और नई स्क्रिप्ट में जांच करता हूं। मेरे डेवलपर इसकी जाँच करते हैं और या तो इसे "नोड npm-setup.js" या वैश्विक पर्यावरण को अद्यतन करने के लिए विकास के तहत किसी भी उत्पाद से "npm स्थापित" करके चलाते हैं। पूरी बात में 5 मिनट लगते हैं।

इसके अलावा, एक नए डेवलपर के लिए पर्यावरण को कॉन्फ़िगर करने के लिए, उन्हें पहले केवल विंडोज के लिए NodeJS और GIT स्थापित करना होगा, अपने कंप्यूटर को रिबूट करना होगा, "साझा फ़ाइलें" फ़ोल्डर और विकास के तहत किसी भी उत्पाद की जांच करनी होगी, और काम करना शुरू करना होगा।

.NET उत्पाद के लिए "package.json" इस स्क्रिप्ट को स्थापित करने से पहले कहता है:

{ 
"name"                    : "Books",
"description"             : "Node (npm) configuration for Books Database Web Application Tools",
"version"                 : "2.1.1",
"private"                 : true,
"scripts":
  {
  "preinstall"            : "node ../../SharedFiles/npm-setup.js links",
  "postinstall"           : "bower install"
  },
"dependencies": {}
}

टिप्पणियाँ

  • ध्यान दें कि स्क्रिप्ट संदर्भ को Windows वातावरण में भी आगे की ओर स्लैश की आवश्यकता है।

  • "npm ls" "npm ERR! extraneous:" सभी संकुल के लिए संदेश स्थानीय रूप से जुड़े हुए हैं क्योंकि वे "package.json" "निर्भरता" में सूचीबद्ध नहीं हैं।

1/29/16 संपादित करें

npm-setup.jsउपरोक्त अद्यतन स्क्रिप्ट को निम्नानुसार संशोधित किया गया है:

  • पैकेज "संस्करण" var packagesअब npm installकमांड लाइन पर "पैकेज" मान है । यह पंजीकृत रिपॉजिटरी के अलावा कहीं और से पैकेज स्थापित करने की अनुमति के लिए बदल दिया गया था।

  • यदि पैकेज पहले से स्थापित है, लेकिन अनुरोध नहीं किया गया है, तो मौजूदा पैकेज हटा दिया गया है और सही एक स्थापित है।

  • अज्ञात कारणों से, एनपीएम समय-समय पर एक स्थापित या लिंक का प्रदर्शन करते समय एक EBUSY त्रुटि (-4082) फेंक देगा। यह त्रुटि फंस गई है और कमांड पुनः निष्पादित हो गई है। त्रुटि शायद ही कभी दूसरी बार होती है और हमेशा स्पष्ट होने लगती है।


यह एक लाइफसेवर @ sthames42 है! मैं घंटों से ट्रोल कर रहा हूं कि यह कैसे किया जाए। स्पष्ट, व्यापक, आम तौर पर भयानक। #point प्रश्न: (ए) पैकेज सूची में पहले से ही बोवर पोस्टपार्ट में क्यों है? (b) वैश्विक पैकेजों को स्थानीय रूप से कैसे लिंक नहीं किया जाए? बस कमांड में "लिंक" शामिल नहीं है?
20

@MaxRocket: खुशी है कि मैं मदद कर सकता था। मैंने अपने नवीनतम को शामिल करने के उत्तर को अपडेट किया है जो बहुत बेहतर काम करता है। उत्तर: (a) 'npm install' के बाद 'bower install' कमांड चलता है, जो यहाँ दिखाए गए bower.json फ़ाइल में सूचीबद्ध Bower घटकों को स्थापित करने के लिए किया गया है। मैं चाहता था कि मेरे लोग 'npm इंस्टॉल' टाइप करने में सक्षम हों और एक अन्य कमांड टाइप किए बिना उनका वातावरण पूरी तरह से सेट हो। (b) हां।
sthames42

इस स्क्रिप्ट का वर्तमान संस्करण अब यहां बनाए रखा गया है
sthames42

6

आप npm_globals.txtइसके बजाय एक अलग फ़ाइल का उपयोग कर सकते हैं package.json। इस फ़ाइल में इस तरह एक नई लाइन पर प्रत्येक मॉड्यूल होगा,

mongoose@1.4.0
node.io@0.3.3
jquery@1.5.1
jsdom@0.2.0
cron@0.1.2

फिर कमांड लाइन रन में,

< npm_globals.txt xargs npm install -g

जांचें कि उन्होंने ठीक से स्थापित किया है,

npm list -g --depth=0

जैसे कि आपको यह करना चाहिए या नहीं, मुझे लगता है कि यह सब उपयोग के मामले पर निर्भर करता है। अधिकांश परियोजनाओं के लिए, यह आवश्यक नहीं है; और अपनी परियोजना के package.jsonइन उपकरणों और निर्भरता को एक साथ रखना ज्यादा पसंद किया जाता है।

लेकिन आजकल मुझे लगता है कि create-react-appजब मैं एक नई मशीन पर कूदता हूं, तो मैं हमेशा स्थापित रहता हूं और अन्य सीएलआई की विश्व स्तर पर पहचान करता हूं। जब कोई संस्करण ज्यादा मायने नहीं रखता है, तो एक वैश्विक उपकरण और उसकी निर्भरता को स्थापित करने का एक आसान तरीका होना अच्छा है।

और आजकल, मैं विश्व स्तर पर संकुल स्थापित करने के बजाय npx, एक npm पैकेज धावक का उपयोग कर रहा हूँ ।


3

Package.json से सभी मॉड्यूल ./node_modules/ पर इंस्टॉल किए गए हैं

मैं यह स्पष्ट रूप से नहीं कह पाया, लेकिन यह NPM के लिए package.json संदर्भ है ।


1

वैश्विक निर्भरता स्थापित करने के लिए अपनी स्क्रिप्ट बनाएं। यह ज्यादा नहीं लेता है। package.json काफी विस्तार योग्य है।

const {execSync} = require('child_process');

JSON.parse(fs.readFileSync('package.json'))
     .globalDependencies.foreach(
         globaldep => execSync('npm i -g ' + globaldep)
     );

उपरोक्त का उपयोग करके, आप इसे नीचे इनलाइन भी कर सकते हैं!

नीचे पूर्वस्थापित देखें:

{
  "name": "Project Name",
  "version": "0.1.0",
  "description": "Project Description",
  "main": "app.js",
  "scripts": {
    "preinstall": "node -e \"const {execSync} = require('child_process'); JSON.parse(fs.readFileSync('package.json')).globalDependencies.foreach(globaldep => execSync('npm i -g ' + globaldep));\"",
    "build": "your transpile/compile script",
    "start": "node app.js",
    "test": "./node_modules/.bin/mocha --reporter spec",
    "patch-release": "npm version patch && npm publish && git add . && git commit -m \"auto-commit\" && git push --follow-tags"
  },
  "dependencies": [
  },
  "globalDependencies": [
    "cordova@8.1.2",
    "ionic",
    "potato"
  ],
  "author": "author",
  "license": "MIT",
  "devDependencies": {
    "chai": "^4.2.0",
    "mocha": "^5.2.0"
  },
  "bin": {
    "app": "app.js"
  }
}

नोड के लेखक पैकेज स्वीकार नहीं कर सकते हैं। एक परियोजना फ़ाइल है। लकिन यह है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.