ملاحظة هامة
تم نقل هذا المستودع إلى المستودع الأحادي لـ github.com/netlify/build ويتم الاحتفاظ باسم الحزمة والإصدارات!
أداة الكشف عن الإطار.
يكتشف إطار العمل الذي يستخدمه موقع ويب معين. يتم أيضًا إرجاع أوامر البناء/التطوير والأدلة ومنفذ الخادم الخاص بإطار العمل.
تم الكشف عن الأطر التالية:
إذا كنت تبحث عن طريقة لتشغيل framework-info
عبر واجهة سطر الأوامر (CLI)، فتحقق من مشروع build-info
.
الإضافات والتحديثات هي موضع ترحيب!
import { listFrameworks , hasFramework , getFramework } from '@netlify/framework-info'
console . log ( await listFrameworks ( { projectDir : './path/to/gatsby/website' } ) )
// [
// {
// id: 'gatsby',
// name: 'Gatsby',
// category: 'static_site_generator',
// dev: {
// commands: ['gatsby develop'],
// port: 8000,
// pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }]
// },
// build: {
// commands: ['gatsby build'],
// directory: 'public'
// },
// staticAssetsDirectory: "static",
// env: { GATSBY_LOGGER: 'yurnalist' },
// plugins: []
// }
// ]
console . log ( await listFrameworks ( { projectDir : './path/to/vue/website' } ) )
// [
// {
// id: 'vue',
// name: 'Vue.js',
// category: 'frontend_framework',
// dev: {
// commands: ['npm run serve'],
// port: 8080,
// pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }]
// },
// build: {
// commands: ['vue-cli-service build'],
// directory: 'dist'
// },
// env: {},
// plugins: []
// }
// ]
console . log ( await hasFramework ( 'vue' , { projectDir : './path/to/vue/website' } ) )
// true
console . log ( await getFramework ( 'vue' , { projectDir : './path/to/vue/website' } ) )
// {
// id: 'vue',
// name: 'Vue.js',
// category: 'frontend_framework',
// dev: {
// commands: ['npm run serve'],
// port: 8080,
// pollingStrategies: [{ name: 'TCP' }, { name: 'HTTP' }]
// },
// build: {
// commands: ['vue-cli-service build'],
// directory: 'dist'
// },
// env: {},
// plugins: []
// }
npm install @netlify/framework-info
options
: object?
قيمة الإرجاع : Promise<object[]>
النوع : string
القيمة الافتراضية : process.cwd()
المسار إلى دليل الموقع.
يؤدي هذا إلى إرجاع حل Promise
إلى مجموعة من الكائنات التي تصف كل إطار عمل. يمكن أن تكون المصفوفة فارغة، أو تحتوي على كائن واحد أو عدة كائنات.
كل كائن لديه الخصائص التالية.
النوع : string
معرف مثل "gatsby"
.
النوع : string
اسم الإطار مثل "Gatsby"
.
النوع : string
الفئة بين "static_site_generator"
و "frontend_framework"
و "build_tool"
.
النوع : object
معلومات حول أمر التطوير.
النوع : string[]
أمر التطوير. قد يكون هناك عدة بدائل.
النوع : number
منفذ الخادم.
النوع : object[]
استراتيجيات الاقتراع التي يجب استخدامها عند التحقق مما إذا كان خادم التطوير جاهزًا.
النوع : object
معلومات حول أمر البناء.
النوع : string[]
بناء الأمر. قد يكون هناك عدة بدائل.
النوع : string
المسار النسبي للدليل الذي تم إنشاء الملفات فيه.
النوع : string
الدليل حيث يقوم الإطار بتخزين الأصول الثابتة. يمكن أن يكون undefined
.
النوع : object
متغيرات البيئة التي يجب ضبطها عند استدعاء أمر dev.
النوع : string[]
قائمة بالمكونات الإضافية الموصى بها لبناء Netlify لتثبيتها لإطار العمل.
options
: object?
قيمة الإرجاع : Promise<boolean>
مثل listFramework()
باستثناء إطار عمل محدد فقط وتقوم بإرجاع قيمة منطقية.
options
: object?
قيمة الإرجاع : Promise<object>
مثل listFramework()
باستثناء أن إطار العمل يتم تمريره كوسيطة بدلاً من أن يتم اكتشافه. يتم إرجاع كائن إطار واحد.
$ framework-info [projectDirectory]
يؤدي هذا إلى طباعة معرفات كل إطار.
إذا تم العثور على معروف، فسيتم طباعة unknown
.
الأعلام المتاحة:
--long
: عرض المزيد من المعلومات حول كل إطار عمل. سيكون الناتج عبارة عن مصفوفة JSON. كل إطار هو ملف JSON في الدليل /src/frameworks/
. على سبيل المثال:
{
"id" : " gatsby " ,
"name" : " Gatsby " ,
"category" : " static_site_generator " ,
"detect" : {
"npmDependencies" : [ " gatsby " ],
"excludedNpmDependencies" : [],
"configFiles" : [ " gatsby-config.js " ]
},
"dev" : {
"command" : " gatsby develop " ,
"port" : 8000 ,
"pollingStrategies" : [{ "name" : " TCP " }, { "name" : " HTTP " }]
},
"build" : {
"command" : " gatsby build " ,
"directory" : " public "
},
"staticAssetsDirectory" : " static " ,
"env" : { "GATSBY_LOGGER" : " yurnalist " },
"plugins" : []
}
جميع الخصائص مطلوبة.
النوع : string
معرف الإطار
النوع : string
اسم الإطار.
النوع : string
أحد "static_site_generator"
أو "frontend_framework"
أو "build_tool"
.
النوع : object
المعلومات المستخدمة للكشف عن هذا الإطار
النوع : string[]
حزم npm للإطار. سيتم اعتبار أي مشروع يحتوي على إحدى هذه الحزم في package.json
( dependencies
أو devDependencies
) على أنه يستخدم إطار العمل.
إذا كانت فارغة، يتم تجاهل هذا.
النوع : string[]
معكوس npmDependencies
. إذا كان أي مشروع يستخدم إحدى هذه الحزم، فلن يتم اعتباره يستخدم إطار العمل.
إذا كانت فارغة، يتم تجاهل هذا.
النوع : string[]
ملفات تكوين الإطار. يجب أن تكون هذه المسارات مرتبطة بدليل المشروع. سيتم اعتبار أي مشروع يحتوي على أحد ملفات التكوين على أنه يستخدم إطار العمل.
إذا كانت فارغة، يتم تجاهل هذا.
النوع : object
معلمات للكشف عن أمر التطوير.
النوع : string
أمر التطوير الافتراضي
النوع : number
منفذ خادم التطوير المحلي.
النوع : object[]
استراتيجيات الاقتراع التي يجب استخدامها عند التحقق مما إذا كان خادم التطوير جاهزًا.
النوع : object
معلمات للكشف عن أمر البناء.
النوع : string
أمر البناء الافتراضي.
النوع : string
الدليل الذي تتم كتابة الملفات المضمنة إليه.
النوع : string
الدليل حيث يقوم الإطار بتخزين الأصول الثابتة حيثما كان ذلك مناسبًا للإطار.
النوع : object
متغيرات البيئة التي يجب ضبطها عند تشغيل أمر dev.
النوع : object[]
قائمة بأسماء وشروط حزم المكونات الإضافية لـ Netlify. إذا تم استيفاء شرط للمكون الإضافي، فسيتم إرجاعه إلى قائمة المكونات الإضافية لإطار العمل.
على سبيل المثال
{
"plugins" : [
{
"packageName" : " @netlify/plugin-nextjs " ,
"condition" : { "minNodeVersion" : " 10.13.0 " }
}
]
}