重要的通知
该存储库移至github.com/netlify/build的单声道存储库中,包装名称,并且保留了版本!
框架检测实用程序。
检测特定网站正在使用的框架。还返回了框架的构建/开发命令,目录和服务器端口。
检测到以下框架:
如果您正在寻找一种通过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
有关开发命令的信息。
类型: 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。
如果发现已知,则unknown
。
可用标志:
--long
:显示有关每个框架的更多信息。输出将是JSON数组。每个框架都是/src/frameworks/
Directory中的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[]
Framework的NPM软件包。任何package.json
中包含其中一个软件包的项目。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 " }
}
]
}