Aviso importante
Este repositorio se movió al repositorio mono de github.com/netlify/build. ¡El nombre del paquete y las versiones se conservan!
Utilidad de detección de marcos.
Detecta qué marco está utilizando un sitio web específico. También se devuelven los comandos de compilación/desarrollo, los directorios y el puerto del servidor del marco.
Se detectan los siguientes marcos:
Si está buscando una manera de ejecutar framework-info
a través de CLI, consulte el proyecto build-info
.
¡Las adiciones y actualizaciones son bienvenidas!
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 predeterminado : process.cwd()
Ruta al directorio del sitio web.
Esto devuelve una Promise
que se resuelve en una serie de objetos que describen cada marco. La matriz puede estar vacía, contener un solo objeto o varios objetos.
Cada objeto tiene las siguientes propiedades.
Tipo : string
Identificación como "gatsby"
.
Tipo : string
Nombre del marco como "Gatsby"
.
Tipo : string
Categoría entre "static_site_generator"
, "frontend_framework"
y "build_tool"
.
Tipo : object
Información sobre el comando dev.
Tipo : string[]
Comando de desarrollo. Puede haber varias alternativas.
Tipo : number
Puerto del servidor.
Tipo : object[]
Estrategias de sondeo que se utilizarán al comprobar si el servidor de desarrollo está listo.
Tipo : object
Información sobre el comando de compilación.
Tipo : string[]
Comando de construcción. Puede haber varias alternativas.
Tipo : string
Ruta relativa al directorio donde se crean los archivos.
Tipo : string
Directorio donde el marco almacena activos estáticos. Puede ser undefined
.
Tipo : object
Variables de entorno que deben configurarse al llamar al comando dev.
Tipo : string[]
Una lista de complementos de compilación de Netlify recomendados para instalar en el marco.
options
: object?
Valor de retorno : Promise<boolean>
Igual que listFramework()
excepto solo para un marco específico y devuelve un valor booleano.
options
: object?
Valor de retorno : Promise<object>
Igual que listFramework()
excepto que el marco se pasa como argumento en lugar de ser detectado. Se devuelve un único objeto de marco.
$ framework-info [projectDirectory]
Esto imprime los identificadores de cada marco.
Si se encuentra conocido, se imprime unknown
.
Banderas disponibles:
--long
: muestra más información sobre cada marco. La salida será una matriz JSON. Cada marco es un archivo JSON en el directorio /src/frameworks/
. Por ejemplo:
{
"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 las propiedades son obligatorias.
Tipo : string
Identificación del marco.
Tipo : string
Nombre del marco.
Tipo : string
Uno de "static_site_generator"
, "frontend_framework"
o "build_tool"
.
Tipo : object
Información utilizada para detectar este marco
Tipo : string[]
Paquetes npm de Framework. Se considerará que cualquier proyecto con uno de esos paquetes en su package.json
( dependencies
o devDependencies
) utiliza el marco.
Si está vacío, se ignora.
Tipo : string[]
Inverso de npmDependencies
. Si algún proyecto utiliza uno de esos paquetes, no se considerará que utiliza el marco.
Si está vacío, se ignora.
Tipo : string[]
Archivos de configuración del framework. Deberían ser rutas relativas al directorio del proyecto. Se considerará que cualquier proyecto con uno de los archivos de configuración utiliza el marco.
Si está vacío, se ignora.
Tipo : object
Parámetros para detectar el comando dev.
Tipo : string
Comando de desarrollo predeterminado.
Tipo : number
Puerto del servidor de desarrollo local.
Tipo : object[]
Estrategias de sondeo que se utilizarán al comprobar si el servidor de desarrollo está listo.
Tipo : object
Parámetros para detectar el comando de compilación.
Tipo : string
Comando de compilación predeterminado.
Tipo : string
Directorio donde se escriben los archivos creados.
Tipo : string
Directorio donde el marco almacena activos estáticos cuando sea relevante para el marco.
Tipo : object
Variables de entorno que deben configurarse al ejecutar el comando dev.
Tipo : object[]
Una lista de nombres y condiciones de paquetes de complementos de compilación de Netlify. Si se cumple una condición para un complemento, se devolverá a la lista de complementos del marco.
Por ejemplo
{
"plugins" : [
{
"packageName" : " @netlify/plugin-nextjs " ,
"condition" : { "minNodeVersion" : " 10.13.0 " }
}
]
}