@netlify/framework-info
Version:
Framework detection utility
1,731 lines (1,730 loc) • 49.3 kB
JavaScript
// This file is autogenerated at build time
export const FRAMEWORKS = [
{
"id": "astro",
"name": "Astro",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"astro"
],
"excludedNpmDependencies": [],
"configFiles": [
"astro.config.mjs"
]
},
"dev": {
"command": "astro dev",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "astro build",
"directory": "dist"
},
"staticAssetsDirectory": "public",
"env": {},
"logo": {
"default": "https://framework-info.netlify.app/logos/astro/light.svg",
"light": "https://framework-info.netlify.app/logos/astro/light.svg",
"dark": "https://framework-info.netlify.app/logos/astro/dark.svg"
},
"plugins": []
},
{
"id": "docusaurus",
"name": "Docusaurus",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"docusaurus"
],
"excludedNpmDependencies": [],
"configFiles": [
"siteConfig.js"
]
},
"dev": {
"command": "docusaurus-start",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "docusaurus-build",
"directory": "build/<project-name>"
},
"staticAssetsDirectory": "static",
"logo": {
"default": "https://framework-info.netlify.app/logos/docusaurus/default.svg",
"light": "https://framework-info.netlify.app/logos/docusaurus/default.svg",
"dark": "https://framework-info.netlify.app/logos/docusaurus/default.svg"
},
"env": {
"BROWSER": "none"
},
"plugins": []
},
{
"id": "docusaurus-v2",
"name": "Docusaurus 2",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"@docusaurus/core"
],
"excludedNpmDependencies": [],
"configFiles": [
"docusaurus.config.js"
]
},
"dev": {
"command": "docusaurus start",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "docusaurus build",
"directory": "build"
},
"staticAssetsDirectory": "static",
"logo": {
"default": "https://framework-info.netlify.app/logos/docusaurus/default.svg",
"light": "https://framework-info.netlify.app/logos/docusaurus/default.svg",
"dark": "https://framework-info.netlify.app/logos/docusaurus/default.svg"
},
"env": {
"BROWSER": "none"
},
"plugins": []
},
{
"id": "eleventy",
"name": "Eleventy",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"@11ty/eleventy"
],
"excludedNpmDependencies": [],
"configFiles": [
".eleventy.js",
"eleventy.config.js",
"eleventy.config.cjs"
]
},
"dev": {
"command": "eleventy --serve",
"port": 8080,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "eleventy",
"directory": "_site"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/eleventy/default.svg",
"light": "https://framework-info.netlify.app/logos/eleventy/default.svg",
"dark": "https://framework-info.netlify.app/logos/eleventy/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "gatsby",
"name": "Gatsby",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"gatsby"
],
"excludedNpmDependencies": [],
"configFiles": [
"gatsby-config.js",
"gatsby-config.ts"
]
},
"dev": {
"command": "gatsby develop",
"port": 8000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "gatsby build",
"directory": "public"
},
"staticAssetsDirectory": "static",
"env": {
"GATSBY_LOGGER": "yurnalist",
"GATSBY_PRECOMPILE_DEVELOP_FUNCTIONS": "true",
"AWS_LAMBDA_JS_RUNTIME": "nodejs14.x",
"NODE_VERSION": "14"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/gatsby/default.svg",
"light": "https://framework-info.netlify.app/logos/gatsby/light.svg",
"dark": "https://framework-info.netlify.app/logos/gatsby/dark.svg"
},
"plugins": [
{
"packageName": "@netlify/plugin-gatsby",
"condition": {
"minNodeVersion": "12.13.0"
}
}
]
},
{
"id": "gridsome",
"name": "Gridsome",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"gridsome"
],
"excludedNpmDependencies": [],
"configFiles": [
"gridsome.config.js"
]
},
"dev": {
"command": "gridsome develop",
"port": 8080,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "gridsome build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/gridsome/default.svg",
"light": "https://framework-info.netlify.app/logos/gridsome/light.svg",
"dark": "https://framework-info.netlify.app/logos/gridsome/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "hexo",
"name": "Hexo",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"hexo"
],
"excludedNpmDependencies": [],
"configFiles": [
"_config.yml"
]
},
"dev": {
"command": "hexo server",
"port": 4000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "hexo generate",
"directory": "public"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/hexo/default.svg",
"light": "https://framework-info.netlify.app/logos/hexo/light.svg",
"dark": "https://framework-info.netlify.app/logos/hexo/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "hugo",
"name": "Hugo",
"category": "static_site_generator",
"detect": {
"npmDependencies": [],
"excludedNpmDependencies": [],
"configFiles": [
"config.json",
"config.toml",
"config.yaml",
"hugo.toml"
]
},
"dev": {
"command": "hugo server -w",
"port": 1313,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "hugo",
"directory": "public"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/hugo/default.svg",
"light": "https://framework-info.netlify.app/logos/hugo/default.svg",
"dark": "https://framework-info.netlify.app/logos/hugo/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "hydrogen",
"name": "Hydrogen",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"@shopify/hydrogen"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "vite",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
}
]
},
"build": {
"command": "npm run build",
"directory": "dist/client"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/hydrogen/default.svg",
"light": "https://framework-info.netlify.app/logos/hydrogen/default.svg",
"dark": "https://framework-info.netlify.app/logos/hydrogen/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "jekyll",
"name": "Jekyll",
"category": "static_site_generator",
"detect": {
"npmDependencies": [],
"excludedNpmDependencies": [],
"configFiles": [
"_config.yml",
"_config.yaml",
"_config.toml"
]
},
"dev": {
"command": "bundle exec jekyll serve -w",
"port": 4000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "bundle exec jekyll build",
"directory": "_site"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/jekyll/dark.svg",
"light": "https://framework-info.netlify.app/logos/jekyll/light.svg",
"dark": "https://framework-info.netlify.app/logos/jekyll/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "middleman",
"name": "Middleman",
"category": "static_site_generator",
"detect": {
"npmDependencies": [],
"excludedNpmDependencies": [],
"configFiles": [
"config.rb"
]
},
"dev": {
"command": "bundle exec middleman server",
"port": 4567,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "bundle exec middleman build",
"directory": "build"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/middleman/default.svg",
"light": "https://framework-info.netlify.app/logos/middleman/default.svg",
"dark": "https://framework-info.netlify.app/logos/middleman/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "next-nx",
"name": "Next.js with Nx",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"@nrwl/next"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "nx serve",
"port": 4200,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "nx build",
"directory": "dist/apps/<app name>/.next"
},
"env": {},
"plugins": [
{
"packageName": "@netlify/plugin-nextjs",
"condition": {
"minNodeVersion": "10.13.0"
}
}
]
},
{
"id": "next",
"name": "Next.js",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"next"
],
"excludedNpmDependencies": [
"@nrwl/next"
],
"configFiles": []
},
"dev": {
"command": "next",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
}
]
},
"build": {
"command": "next build",
"directory": ".next"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/nextjs/light.svg",
"light": "https://framework-info.netlify.app/logos/nextjs/light.svg",
"dark": "https://framework-info.netlify.app/logos/nextjs/dark.svg"
},
"env": {},
"plugins": [
{
"packageName": "@netlify/plugin-nextjs",
"condition": {
"minNodeVersion": "10.13.0"
}
}
]
},
{
"id": "blitz",
"name": "Blitz.js",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"blitz"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "blitz dev",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
}
]
},
"build": {
"command": "blitz build",
"directory": "out"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/blitz/light.svg",
"light": "https://framework-info.netlify.app/logos/blitz/light.svg",
"dark": "https://framework-info.netlify.app/logos/blitz/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "nuxt",
"name": "Nuxt 2",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"nuxt",
"nuxt-edge"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "nuxt",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "nuxt generate",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/nuxt/default.svg",
"light": "https://framework-info.netlify.app/logos/nuxt/light.svg",
"dark": "https://framework-info.netlify.app/logos/nuxt/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "nuxt3",
"name": "Nuxt 3",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"nuxt3"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "npm run dev",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "npm run build",
"directory": "dist"
},
"env": {
"AWS_LAMBDA_JS_RUNTIME": "nodejs14.x",
"NODE_VERSION": "14"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/nuxt/default.svg",
"light": "https://framework-info.netlify.app/logos/nuxt/light.svg",
"dark": "https://framework-info.netlify.app/logos/nuxt/dark.svg"
},
"plugins": []
},
{
"id": "phenomic",
"name": "Phenomic",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"@phenomic/core"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "phenomic start",
"port": 3333,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "phenomic build",
"directory": "public"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/phenomic/default.svg",
"light": "https://framework-info.netlify.app/logos/phenomic/default.svg",
"dark": "https://framework-info.netlify.app/logos/phenomic/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "qwik",
"name": "Qwik",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"@builder.io/qwik"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "vite",
"port": 5173,
"pollingStrategies": [
{
"name": "TCP"
}
]
},
"build": {
"command": "npm run build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/qwik/default.svg",
"light": "https://framework-info.netlify.app/logos/qwik/default.svg",
"dark": "https://framework-info.netlify.app/logos/qwik/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "react-static",
"name": "React Static",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"react-static"
],
"excludedNpmDependencies": [],
"configFiles": [
"static.config.js"
]
},
"dev": {
"command": "react-static start",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "react-static build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/react-static/default.png",
"light": "https://framework-info.netlify.app/logos/react-static/default.png",
"dark": "https://framework-info.netlify.app/logos/react-static/default.png"
},
"env": {},
"plugins": []
},
{
"id": "redwoodjs",
"name": "RedwoodJS",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"@redwoodjs/core"
],
"excludedNpmDependencies": [],
"configFiles": [
"redwood.toml"
]
},
"dev": {
"command": "yarn rw dev",
"port": 8910,
"pollingStrategies": [
{
"name": "TCP"
}
]
},
"build": {
"command": "rw deploy netlify",
"directory": "web/dist"
},
"staticAssetsDirectory": "public",
"logo": {
"default": "https://framework-info.netlify.app/logos/redwoodjs/default.svg",
"light": "https://framework-info.netlify.app/logos/redwoodjs/default.svg",
"dark": "https://framework-info.netlify.app/logos/redwoodjs/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "remix",
"name": "Remix",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"remix",
"@remix-run/netlify",
"@remix-run/netlify-edge"
],
"excludedNpmDependencies": [],
"configFiles": [
"remix.config.js"
]
},
"dev": {
"command": "remix watch"
},
"build": {
"command": "remix build",
"directory": "public"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/remix/default.svg",
"light": "https://framework-info.netlify.app/logos/remix/light.svg",
"dark": "https://framework-info.netlify.app/logos/remix/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "solid-js",
"name": "SolidJS",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"solid-js"
],
"excludedNpmDependencies": [
"solid-start"
],
"configFiles": []
},
"dev": {
"command": "npm run dev",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
}
]
},
"build": {
"command": "npm run build",
"directory": "netlify"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/solid-js/default.svg",
"light": "https://framework-info.netlify.app/logos/solid-js/default.svg",
"dark": "https://framework-info.netlify.app/logos/solid-js/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "solid-start",
"name": "Solid Start",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"solid-start"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "solid-start dev",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
}
]
},
"build": {
"command": "solid-start build",
"directory": "netlify"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/solid-start/default.svg",
"light": "https://framework-info.netlify.app/logos/solid-start/default.svg",
"dark": "https://framework-info.netlify.app/logos/solid-start/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "stencil",
"name": "Stencil",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"@stencil/core"
],
"excludedNpmDependencies": [],
"configFiles": [
"stencil.config.ts"
]
},
"dev": {
"command": "stencil build --dev --watch --serve",
"port": 3333,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "stencil build",
"directory": "www"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/stencil/light.svg",
"light": "https://framework-info.netlify.app/logos/stencil/light.svg",
"dark": "https://framework-info.netlify.app/logos/stencil/dark.svg"
},
"env": {
"BROWSER": "none",
"PORT": "3000"
},
"plugins": []
},
{
"id": "vuepress",
"name": "VuePress",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"vuepress"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "vuepress dev",
"port": 8080,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "vuepress build",
"directory": ".vuepress/dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/vuepress/default.svg",
"light": "https://framework-info.netlify.app/logos/vuepress/default.svg",
"dark": "https://framework-info.netlify.app/logos/vuepress/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "assemble",
"name": "Assemble",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"assemble"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {},
"build": {
"command": "grunt build",
"directory": "dist"
},
"env": {},
"logo": {
"default": "https://framework-info.netlify.app/logos/assemble/default.svg",
"light": "https://framework-info.netlify.app/logos/assemble/default.svg",
"dark": "https://framework-info.netlify.app/logos/assemble/default.svg"
},
"plugins": []
},
{
"id": "docpad",
"name": "DocPad",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"docpad"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "docpad run",
"port": 9778,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "docpad generate",
"directory": "out"
},
"env": {},
"plugins": []
},
{
"id": "harp",
"name": "Harp",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"harp"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "harp server",
"port": 9000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "harp compile",
"directory": "www"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/harp/default.svg",
"light": "https://framework-info.netlify.app/logos/harp/light.svg",
"dark": "https://framework-info.netlify.app/logos/harp/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "metalsmith",
"name": "Metalsmith",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"metalsmith"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {},
"build": {
"command": "metalsmith",
"directory": "build"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/metalsmith/default.svg",
"light": "https://framework-info.netlify.app/logos/metalsmith/default.svg",
"dark": "https://framework-info.netlify.app/logos/metalsmith/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "roots",
"name": "Roots",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"roots"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "roots watch",
"port": 1111,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "roots compile",
"directory": "public"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/roots/default.svg",
"light": "https://framework-info.netlify.app/logos/roots/default.svg",
"dark": "https://framework-info.netlify.app/logos/roots/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "wintersmith",
"name": "Wintersmith",
"category": "static_site_generator",
"detect": {
"npmDependencies": [
"wintersmith"
],
"excludedNpmDependencies": [],
"configFiles": [
"config.json"
]
},
"dev": {
"command": "wintersmith preview",
"port": 8080,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "wintersmith build",
"directory": "build"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/wintersmith/default.svg",
"light": "https://framework-info.netlify.app/logos/wintersmith/default.svg",
"dark": "https://framework-info.netlify.app/logos/wintersmith/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "cecil",
"name": "Cecil",
"category": "static_site_generator",
"detect": {
"npmDependencies": [],
"excludedNpmDependencies": [],
"configFiles": [
"config.yml"
]
},
"dev": {
"command": "cecil serve",
"port": 8000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "cecil build",
"directory": "_site"
},
"env": {},
"logo": {
"default": "https://framework-info.netlify.app/logos/cecil/default.svg",
"light": "https://framework-info.netlify.app/logos/cecil/default.svg",
"dark": "https://framework-info.netlify.app/logos/cecil/default.svg"
},
"plugins": []
},
{
"id": "zola",
"name": "Zola",
"category": "static_site_generator",
"detect": {
"npmDependencies": [],
"excludedNpmDependencies": [],
"configFiles": [
"config.toml"
]
},
"dev": {
"command": "zola serve",
"port": 1111,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "zola build",
"directory": "public"
},
"env": {},
"plugins": []
},
{
"id": "angular",
"name": "Angular",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"@angular/cli"
],
"excludedNpmDependencies": [],
"configFiles": [
"angular.json"
]
},
"dev": {
"command": "ng serve",
"port": 4200,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "ng build --prod",
"directory": "dist/"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/angular/default.svg",
"light": "https://framework-info.netlify.app/logos/angular/default.svg",
"dark": "https://framework-info.netlify.app/logos/angular/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "create-react-app",
"name": "Create React App",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"react-scripts"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "react-scripts start",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "react-scripts build",
"directory": "build"
},
"staticAssetsDirectory": "public",
"logo": {
"default": "https://framework-info.netlify.app/logos/create-react-app/default.svg",
"light": "https://framework-info.netlify.app/logos/create-react-app/default.svg",
"dark": "https://framework-info.netlify.app/logos/create-react-app/default.svg"
},
"env": {
"BROWSER": "none",
"PORT": "3000"
},
"plugins": []
},
{
"id": "ember",
"name": "Ember.js",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"ember-cli"
],
"excludedNpmDependencies": [],
"configFiles": [
"ember-cli-build.js"
]
},
"dev": {
"command": "ember serve",
"port": 4200,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "ember build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/ember/default.svg",
"light": "https://framework-info.netlify.app/logos/ember/light.svg",
"dark": "https://framework-info.netlify.app/logos/ember/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "expo",
"name": "Expo",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"expo"
],
"excludedNpmDependencies": [],
"configFiles": [
"app.json"
]
},
"dev": {
"command": "expo start --web",
"port": 19006,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "expo build:web",
"directory": "web-build"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/expo/default.svg",
"light": "https://framework-info.netlify.app/logos/expo/light.svg",
"dark": "https://framework-info.netlify.app/logos/expo/dark.svg"
},
"env": {},
"plugins": []
},
{
"id": "quasar",
"name": "Quasar",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"@quasar/app"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "quasar dev -p 8081",
"port": 8081,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "quasar build",
"directory": "dist/spa"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/quasar/default.svg",
"light": "https://framework-info.netlify.app/logos/quasar/default.svg",
"dark": "https://framework-info.netlify.app/logos/quasar/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "quasar-v0.17",
"name": "Quasar",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"quasar-cli"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "quasar dev -p 8080",
"port": 8080,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "quasar build",
"directory": ".quasar"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/quasar/default.svg",
"light": "https://framework-info.netlify.app/logos/quasar/default.svg",
"dark": "https://framework-info.netlify.app/logos/quasar/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "sapper",
"name": "Sapper",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"sapper"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "sapper dev",
"port": 3000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "sapper export",
"directory": "__sapper__/export"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/sapper/default.svg",
"light": "https://framework-info.netlify.app/logos/sapper/default.svg",
"dark": "https://framework-info.netlify.app/logos/sapper/default.svg"
},
"staticAssetsDirectory": "static",
"env": {},
"plugins": []
},
{
"id": "svelte",
"name": "Svelte",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"svelte"
],
"excludedNpmDependencies": [
"sapper",
"@sveltejs/kit"
],
"configFiles": []
},
"dev": {
"command": "npm run dev",
"port": 5000,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "npm run build",
"directory": "public"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/svelte-kit/default.svg",
"light": "https://framework-info.netlify.app/logos/svelte-kit/default.svg",
"dark": "https://framework-info.netlify.app/logos/svelte-kit/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "svelte-kit",
"name": "SvelteKit",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"@sveltejs/kit"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "vite dev",
"port": 5173,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "vite build",
"directory": "build"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/svelte-kit/default.svg",
"light": "https://framework-info.netlify.app/logos/svelte-kit/default.svg",
"dark": "https://framework-info.netlify.app/logos/svelte-kit/default.svg"
},
"staticAssetsDirectory": "static",
"env": {},
"plugins": []
},
{
"id": "vue",
"name": "Vue.js",
"category": "frontend_framework",
"detect": {
"npmDependencies": [
"@vue/cli-service"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "vue-cli-service serve",
"port": 8080,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "vue-cli-service build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/vue/default.svg",
"light": "https://framework-info.netlify.app/logos/vue/default.svg",
"dark": "https://framework-info.netlify.app/logos/vue/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "brunch",
"name": "Brunch",
"category": "build_tool",
"detect": {
"npmDependencies": [
"brunch"
],
"excludedNpmDependencies": [],
"configFiles": [
"brunch-config.js"
]
},
"dev": {
"command": "brunch watch --server",
"port": 3333,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "brunch build",
"directory": "public"
},
"env": {},
"logo": {
"default": "https://framework-info.netlify.app/logos/brunch/default.svg",
"light": "https://framework-info.netlify.app/logos/brunch/default.svg",
"dark": "https://framework-info.netlify.app/logos/brunch/default.svg"
},
"plugins": []
},
{
"id": "parcel",
"name": "Parcel",
"category": "build_tool",
"detect": {
"npmDependencies": [
"parcel-bundler",
"parcel"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "parcel",
"port": 1234,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "parcel build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/parcel/default.svg",
"light": "https://framework-info.netlify.app/logos/parcel/default.svg",
"dark": "https://framework-info.netlify.app/logos/parcel/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "grunt",
"name": "Grunt",
"category": "build_tool",
"detect": {
"npmDependencies": [
"grunt"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {},
"build": {
"command": "grunt build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/grunt/default.svg",
"light": "https://framework-info.netlify.app/logos/grunt/default.svg",
"dark": "https://framework-info.netlify.app/logos/grunt/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "gulp",
"name": "gulp.js",
"category": "build_tool",
"detect": {
"npmDependencies": [
"gulp"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {},
"build": {
"command": "gulp build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/gulp/default.svg",
"light": "https://framework-info.netlify.app/logos/gulp/default.svg",
"dark": "https://framework-info.netlify.app/logos/gulp/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "vite",
"name": "Vite",
"category": "build_tool",
"detect": {
"npmDependencies": [
"vite"
],
"excludedNpmDependencies": [
"@shopify/hydrogen",
"@builder.io/qwik",
"solid-start",
"solid-js",
"@sveltejs/kit"
],
"configFiles": []
},
"dev": {
"command": "vite",
"port": 5173,
"pollingStrategies": [
{
"name": "TCP"
}
]
},
"build": {
"command": "vite build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/vite/default.svg",
"light": "https://framework-info.netlify.app/logos/vite/default.svg",
"dark": "https://framework-info.netlify.app/logos/vite/default.svg"
},
"env": {},
"plugins": []
},
{
"id": "wmr",
"name": "WMR",
"category": "build_tool",
"detect": {
"npmDependencies": [
"wmr"
],
"excludedNpmDependencies": [],
"configFiles": []
},
"dev": {
"command": "wmr",
"port": 8080,
"pollingStrategies": [
{
"name": "TCP"
},
{
"name": "HTTP"
}
]
},
"build": {
"command": "wmr build",
"directory": "dist"
},
"logo": {
"default": "https://framework-info.netlify.app/logos/wmr/default.svg",
"light": "https://framework-info.netlify.app/logos/wmr/default.svg",
"dark": "https://framework-info.netlify.app/logos/wmr/default.svg"
},
"env": {},
"plugins": []
}
];