اذهب إلى المحتوى

السؤال

نشر

لدي مشروع فيه خادم الويب node.js، وضمن هذا المشروع يوجد صفحة تظهر للمستخدم اسماء وأرقام نسخ المكتبات الحالية المستخدمة ضمن المشروع. فهل يوجد طريقة أستطيع من خلالها بالحصول على هذه المعلومات ضمن node

مثال:

"express": "^4.17.1",
"bcryptjs": "^2.4.3",
.....

وأيضاً إجراء بعض العمليات مثل العملية npm update بشكل برمجي؟

Recommended Posts

  • 1
نشر

تحديث المكتبات برمجيا فأنت تحتاج ل npm نفسه مستورد لديك

const npm = require('npm');

npm.load({'save': true}, function () {
  npm.commands.outdated(function (err, rawOutdated) {
    const outdated = rawOutdated.map(function (module) {
      return module[1];
    });
    npm.commands.install(outdated, function(err, d) {

    });
   });
});

يمكنك استبدال save ب save-dev اذا أردت ذلك 

  • 0
نشر

يمكنك قراءة الملف package.json والحصول البيانات الذي تريدها من بإستخدام الدالة ()readFile أو ()readFileSync من الحزمة fs

ومن ثم تحويل البيانات من Buffer الى نص String بإستخدام ()toString

وآخيراً تحويل البيانات من JSON الى كائن object بإستخدام ()JSON.parse

والحصول على أسماء الحزم وإصداراتها من الكائن الفرعي dependencies

كما هو موضح في الكود الآتي

const fs = require('fs')

const str = JSON.parse(fs.readFileSync('./package.json').toString())
console.log(str.dependencies)

أو ببساطة كالآتي

const package = require('./package.json')

console.log(package.dependencies)

وللتحديث

let npm = require('npm');
npm.load({'save-dev': true}, function () {
  npm.commands.outdated(function (err, rawOutdated) {
    var outdated = rawOutdated.map(function (module) {
      return module[1];
    });
    npm.commands.install(outdated, function(err, d) {

    });
   });
});

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...