重要通知
該儲存庫已移至 github.com/netlify/build 的 mono 儲存庫中,套件名稱和版本均保留!
框架檢測實用程式。
檢測特定網站正在使用哪個框架。框架的 build/dev 指令、目錄和伺服器連接埠也會回傳。
偵測到以下框架:
如果您正在尋找透過 CLI 運行framework-info
的方法,請檢查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
ID 例如"gatsby"
。
類型: string
框架名稱,例如"Gatsby"
。
類型: string
"static_site_generator"
、 "frontend_framework"
和"build_tool"
之間的類別。
類型: object
有關 dev 命令的資訊。
類型: 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]
這會列印每個框架的 id。
如果找到known,則列印unknown
。
可用標誌:
--long
:顯示有關每個框架的更多資訊。輸出將會是一個 JSON 陣列。每個框架都是/src/frameworks/
目錄中的一個 JSON 檔案。例如:
{
"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
框架的 ID。
類型: string
框架的名稱。
類型: string
"static_site_generator"
、 "frontend_framework"
或"build_tool"
之一。
類型: object
用於檢測此框架的信息
類型: string[]
框架的 npm 包。任何在package.json
( dependencies
或devDependencies
)中包含這些套件之一的項目都將被視為使用該框架。
如果為空,則會被忽略。
類型: string[]
npmDependencies
的逆。如果任何項目正在使用這些套件之一,則不會被視為使用該框架。
如果為空,則會被忽略。
類型: string[]
框架的設定檔。這些應該是相對於專案目錄的路徑。任何具有設定檔之一的項目都將被視為使用該框架。
如果為空,則會被忽略。
類型: object
用於偵測 dev 指令的參數。
類型: string
預設開發命令。
類型: number
本地開發伺服器連接埠。
類型: object[]
檢查開發伺服器是否準備就緒時所使用的輪詢策略。
類型: object
用於檢測建置命令的參數。
類型: string
預設建置命令。
類型: string
寫入建置檔的目錄。
類型: string
框架儲存與框架相關的靜態資產的目錄。
類型: object
運行 dev 指令時應設定的環境變數。
類型: object[]
Netlify 建立外掛程式包名稱和條件的清單。如果插件滿足條件,它將返回到框架的插件清單中。
例如
{
"plugins" : [
{
"packageName" : " @netlify/plugin-nextjs " ,
"condition" : { "minNodeVersion" : " 10.13.0 " }
}
]
}