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

الحصول على معلومات من ملف package.json وتحديث المكتبات ضمن node.js

Tamim Fahed

السؤال

لدي مشروع فيه خادم الويب 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...