Aviso importante
Este repositório foi movido para o repositório mono de github.com/netlify/build O nome do pacote e as versões são preservados!
Utilitário de detecção de estrutura.
Detecta qual estrutura um site específico está usando. Os comandos build/dev da estrutura, diretórios e porta do servidor também são retornados.
As seguintes estruturas são detectadas:
Se você está procurando uma maneira de executar framework-info via CLI, verifique o projeto build-info .
Adições e atualizações são bem-vindas!
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?
Valor de retorno : Promise<object[]>
Tipo : string
Valor padrão : process.cwd()
Caminho para o diretório do site.
Isso retorna uma Promise resolvida para uma matriz de objetos que descreve cada estrutura. A matriz pode estar vazia, conter um único objeto ou vários objetos.
Cada objeto possui as seguintes propriedades.
Tipo : string
Id como "gatsby" .
Tipo : string
Nome da estrutura como "Gatsby" .
Tipo : string
Categoria entre "static_site_generator" , "frontend_framework" e "build_tool" .
Tipo : object
Informações sobre o comando dev.
Tipo : string[]
Comando de desenvolvimento. Pode haver várias alternativas.
Tipo : number
Porta do servidor.
Tipo : object[]
Estratégias de pesquisa a serem usadas ao verificar se o servidor de desenvolvimento está pronto.
Tipo : object
Informações sobre o comando de construção.
Tipo : string[]
Comando de construção. Pode haver várias alternativas.
Tipo : string
Caminho relativo para o diretório onde os arquivos são criados.
Tipo : string
Diretório onde a estrutura armazena ativos estáticos. Pode ser undefined .
Tipo : object
Variáveis de ambiente que devem ser definidas ao chamar o comando dev.
Tipo : string[]
Uma lista de plug-ins de construção Netlify recomendados para instalação na estrutura.
options : object?
Valor de retorno : Promise<boolean>
O mesmo que listFramework() exceto apenas para uma estrutura específica e retorna um booleano.
options : object?
Valor de retorno : Promise<object>
O mesmo que listFramework() exceto que a estrutura é passada como argumento em vez de ser detectada. Um único objeto de estrutura é retornado.
$ framework-info [projectDirectory]Isso imprime os ids de cada estrutura.
Se conhecido for encontrado, unknown será impresso.
Bandeiras disponíveis:
--long : mostra mais informações sobre cada estrutura. A saída será uma matriz JSON. Cada estrutura é um arquivo JSON no diretório /src/frameworks/ . Por exemplo:
{
"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" : []
}Todas as propriedades são obrigatórias.
Tipo : string
ID da estrutura.
Tipo : string
Nome da estrutura.
Tipo : string
Um de "static_site_generator" , "frontend_framework" ou "build_tool" .
Tipo : object
Informações usadas para detectar esta estrutura
Tipo : string[]
Pacotes npm do Framework. Qualquer projeto com um desses pacotes em seu package.json ( dependencies ou devDependencies ) será considerado como utilizando o framework.
Se estiver vazio, isso será ignorado.
Tipo : string[]
Inverso de npmDependencies . Se algum projeto estiver utilizando um desses pacotes, não será considerado como utilizando o framework.
Se estiver vazio, isso será ignorado.
Tipo : string[]
Arquivos de configuração do Framework. Esses devem ser caminhos relativos ao diretório do projeto. Qualquer projeto com um dos arquivos de configuração será considerado como utilizando o framework.
Se estiver vazio, isso será ignorado.
Tipo : object
Parâmetros para detectar o comando dev.
Tipo : string
Comando dev padrão.
Tipo : number
Porta do servidor de desenvolvimento local.
Tipo : object[]
Estratégias de pesquisa a serem usadas ao verificar se o servidor de desenvolvimento está pronto.
Tipo : object
Parâmetros para detectar o comando de construção.
Tipo : string
Comando de construção padrão.
Tipo : string
Diretório onde os arquivos compilados são gravados.
Tipo : string
Diretório onde a estrutura armazena ativos estáticos quando relevante para a estrutura.
Tipo : object
Variáveis de ambiente que devem ser definidas ao executar o comando dev.
Tipo : object[]
Uma lista de nomes e condições de pacotes de plug-ins de construção do Netlify. Se uma condição for atendida para um plugin, ela será retornada na lista de plugins do framework.
Por exemplo
{
"plugins" : [
{
"packageName" : " @netlify/plugin-nextjs " ,
"condition" : { "minNodeVersion" : " 10.13.0 " }
}
]
}