json - mac - npm شرح




هل هناك طريقة لإنشاء ملف package.json لمشاريع Node.js تلقائيًا (7)

1. الاختيار

إذا كنت git و GitHub:

generate-package أكثر بساطة ، من npm init .

آخر

و / أو لا تعجبك نموذج package.json ، الذي ينشئ إنشاء حزمة أو npm init :

يمكنك إنشاء القالب الخاص بك عن طريق تطبيقات السقالات مثل generate أو sails أو yeoman .

2. الصلة

هذه الإجابة ذات الصلة في مارس 2018. في المستقبل ، قد تكون البيانات من هذه الإجابة عفا عليها الزمن.

استخدم مؤلف هذه الإجابة شخصياً مجموعة توليد في مارس 2018.

3. القيود

تحتاج إلى استخدام git و GitHub لاستخدام حزمة إنشاء.

4. مظاهرة

على سبيل المثال ، أقوم بإنشاء مجلد فارغ sasha-npm-init-vs-generate-package .

4.1. توليد حزمة

أمر:

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"
}

أعتقد أن generate-package أكثر بساطة ، أن npm init .

5. تخصيص

أن إنشاء قالب package.json الخاص بك ، انظر generate والأمثلة yeoman .

هل من المفترض أن يتم تحرير package.json يدويًا؟ لا يمكن لأي برنامج مثل npm أن ينظر من خلال الملفات ، راجع عبارات "تتطلب" ، ثم استخدم ذلك لوضع الإدخالات الضرورية في ملف package.json؟ هل هناك أي برامج من هذا القبيل؟


أنا فقط كتبت برنامج نصي بسيط لجمع التبعيات في ./node_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 init -f لإنشاء ملف package.json وبعد ذلك الاستخدام - حافظ بعد كل أمر بحيث يتم تحديث كل وحدة تلقائيًا داخل الحزمة الخاصة بك. exon: ex npm install express - save


استنادًا إلى إجابة Pylinux ، يوجد أدناه حل لنظام التشغيل Windows ،

dir node_modules > abc.txt
FOR /F %k in (abc.txt) DO npm install --save

آمل أن يساعد.


يتم استخدام ملف package.json بواسطة npm للتعرف على مشروع node.js.

استخدم npm init لتوليد ملفات package.json لك!

يأتي المجمعة مع npm. اقرأ وثائقها هنا: https://docs.npmjs.com/cli/init

أيضا ، هناك أداة يمكنك استخدامها في مشاريعك الخاصة لإنشاء هذا الملف برمجيًا (تم تصميمه بواسطة صانع npm): https://github.com/isaacs/init-package-json


يمكنك الآن استخدام أداة Yeoman - Modern Web App Scaffolding Tool على طرف العقدة باستخدام 3 خطوات سهلة.

أولاً ، ستحتاج إلى تثبيت yo والأدوات الأخرى المطلوبة:

$ npm install -g yo bower grunt-cli gulp

لسقِط تطبيق ويب ، قم بتثبيت مولد المولد-webapp :

$ npm install -g generator-webapp  // create scaffolding 

تشغيل و ... لقد انتهيت كل شيء:

$ yo webapp  // create scaffolding 

يمكن Yeoman كتابة رمز bilerplate لتطبيق الويب الخاص بك بأكمله أو وحدات التحكم والنماذج. يمكنه تشغيل خادم ويب للمعاينة المباشرة لإجراء عمليات التحرير والترجمة. ليس فقط أنه يمكنك أيضًا تشغيل اختبارات وحدتك ، وتقليل وتسلسل شفرتك ، وتحسين الصور ، والمزيد ...

Yeoman (yo) - أداة السقالات التي توفر نظامًا بيئيًا من السقالات الخاصة بالإطارات ، والتي تسمى المولدات الكهربائية ، والتي يمكن استخدامها لتنفيذ بعض المهام الشاقة المذكورة سابقًا.

Grunt / gulp - يُستخدم لإنشاء المشروع ومعاينته واختباره.

يستخدم Bower - لإدارة التبعية ، بحيث لم يعد يلزمك تنزيل مكتبات الواجهة الأمامية يدويًا.


سطر الأوامر :

npm init

سيخلق ملف package.json

لتثبيت وتحديث وإزالة الحزم تحت التبعيات إلى ملف package.json:

سطر الأوامر :

npm install <pkg>@* --save 

سيضيف تلقائيًا أحدث إصدار للحزمة ضمن التبعيات إلى ملف package.json

EX:

npm install [email protected]* --save

سطر الأوامر :

npm install <pkg> --save

سيضيف تلقائيًا أحدث إصدار للحزمة ضمن التبعيات إلى ملف package.json

إذا كنت بحاجة إلى إصدار محدد لحزمة استخدم سطر الأوامر هذا:

npm install <pkg>@<version> --save

سيضيف تلقائيًا إصدارًا معينًا من الحزمة ضمن التبعيات إلى ملف package.json

EX:

npm install [email protected] --save

إذا كنت بحاجة إلى نطاق محدد من إصدار الحزمة ، استخدم سطر الأوامر هذا:

npm install <pkg>@<version range>

سيقوم تلقائيًا بإضافة أحدث إصدار للحزمة بين نطاق الإصدار تحت تبعيات إلى ملف package.json

EX:

npm install [email protected]">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