Avis important
Ce référentiel a été déplacé dans le référentiel mono de github.com/netlify/build Le nom du package et les versions sont conservés !
Utilitaire de détection de framework.
Détecte le framework utilisé par un site Web spécifique. Les commandes build/dev du framework, les répertoires et le port du serveur sont également renvoyés.
Les frameworks suivants sont détectés :
Si vous cherchez un moyen d'exécuter framework-info
via CLI, consultez le projet build-info
.
Les ajouts et mises à jour sont les bienvenus !
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?
Valeur de retour : Promise<object[]>
Type : string
Valeur par défaut : process.cwd()
Chemin d'accès au répertoire du site Web.
Cela renvoie une Promise
résolue en un tableau d'objets décrivant chaque framework. Le tableau peut être vide, contenir un seul objet ou plusieurs objets.
Chaque objet possède les propriétés suivantes.
Type : string
Identifiant tel que "gatsby"
.
Type : string
Nom du framework tel que "Gatsby"
.
Type : string
Catégorie parmi "static_site_generator"
, "frontend_framework"
et "build_tool"
.
Type : object
Informations sur la commande dev.
Type : string[]
Commande de développement. Il pourrait y avoir plusieurs alternatives.
Type : number
Port du serveur.
Type : object[]
Stratégies d'interrogation à utiliser pour vérifier si le serveur de développement est prêt.
Type : object
Informations sur la commande build.
Type : string[]
Commande de construction. Il pourrait y avoir plusieurs alternatives.
Type : string
Chemin relatif vers le répertoire dans lequel les fichiers sont construits.
Type : string
Répertoire dans lequel le framework stocke les actifs statiques. Peut être undefined
.
Type : object
Variables d'environnement qui doivent être définies lors de l'appel de la commande dev.
Type : string[]
Une liste de plugins de build Netlify recommandés à installer pour le framework.
options
: object?
Valeur de retour : Promise<boolean>
Identique à listFramework()
sauf uniquement pour un framework spécifique et renvoie un booléen.
options
: object?
Valeur de retour : Promise<object>
Identique à listFramework()
sauf que le framework est passé en argument au lieu d'être détecté. Un seul objet framework est renvoyé.
$ framework-info [projectDirectory]
Ceci imprime les identifiants de chaque framework.
Si connu est trouvé, unknown
est imprimé.
Drapeaux disponibles :
--long
: Afficher plus d'informations sur chaque framework. La sortie sera un tableau JSON. Chaque framework est un fichier JSON dans le répertoire /src/frameworks/
. Par exemple:
{
"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" : []
}
Toutes les propriétés sont obligatoires.
Type : string
Identifiant du framework.
Type : string
Nom du framework.
Type : string
L'un des "static_site_generator"
, "frontend_framework"
ou "build_tool"
.
Type : object
Informations utilisées pour détecter ce framework
Type : string[]
Packages npm du Framework. Tout projet avec l'un de ces packages dans leur package.json
( dependencies
ou devDependencies
) sera considéré comme utilisant le framework.
S'il est vide, il est ignoré.
Type : string[]
Inverse de npmDependencies
. Si un projet utilise l’un de ces packages, il ne sera pas considéré comme utilisant le framework.
S'il est vide, il est ignoré.
Type : string[]
Fichiers de configuration du Framework. Il doit s'agir de chemins relatifs au répertoire du projet. Tout projet comportant l'un des fichiers de configuration sera considéré comme utilisant le framework.
S'il est vide, il est ignoré.
Type : object
Paramètres pour détecter la commande dev.
Type : string
Commande de développement par défaut.
Type : number
Port du serveur de développement local.
Type : object[]
Stratégies d'interrogation à utiliser pour vérifier si le serveur de développement est prêt.
Type : object
Paramètres pour détecter la commande build.
Type : string
Commande de construction par défaut.
Type : string
Répertoire dans lequel les fichiers construits sont écrits.
Type : string
Répertoire dans lequel le framework stocke les actifs statiques lorsque cela est pertinent pour le framework.
Type : object
Variables d'environnement qui doivent être définies lors de l'exécution de la commande dev.
Type : object[]
Une liste des noms et conditions des packages de plugins de build Netlify. Si une condition est remplie pour un plugin, elle sera renvoyée dans la liste des plugins du framework.
Par exemple
{
"plugins" : [
{
"packageName" : " @netlify/plugin-nextjs " ,
"condition" : { "minNodeVersion" : " 10.13.0 " }
}
]
}