{"id":41078,"library":"fascio","title":"Fascio","description":"A simple asset bundler for frontend assets built on esbuild. Current stable version is 3.0.0. It supports PostCSS, SASS, React, Vue, Svelte and copying files. Key differentiators: minimal configuration, single API for multiple frameworks and CSS preprocessors, no CLI required—just plain JavaScript. Release cadence: stable releases as updates are made.","status":"active","version":"3.0.0","language":"javascript","source_language":"en","source_url":"https://github.com/chrismademe/fascio","tags":["javascript"],"install":[{"cmd":"npm install fascio","lang":"bash","label":"npm"},{"cmd":"yarn add fascio","lang":"bash","label":"yarn"},{"cmd":"pnpm add fascio","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Core bundling engine","package":"esbuild","optional":false},{"reason":"Required for Sass/SCSS support","package":"sass","optional":true},{"reason":"Required for PostCSS support","package":"postcss","optional":true}],"imports":[{"note":"Default export; ESM since v3, CommonJS not supported. Requires type: 'module' or .mjs extension.","wrong":"const Fascio = require('fascio')","symbol":"Fascio","correct":"import Fascio from 'fascio'"},{"note":"Named method on the default import; not a separate import.","wrong":"Fascio.js('./src/entry.js', {})","symbol":"Fascio.js","correct":"Fascio.js('./src/entry.js')"},{"note":"JSX transform included; no need for extra config.","wrong":"Fascio.react('./src/entry.jsx', {jsx: 'automatic'})","symbol":"Fascio.react","correct":"Fascio.react('./src/entry.jsx')"},{"note":"PostCSS plugins passed in options.plugins, not nested under postcss key.","wrong":"Fascio.postcss('./src/style.css', {postcss: {plugins: []}})","symbol":"Fascio.postcss","correct":"Fascio.postcss('./src/style.css', {plugins: [require('autoprefixer')]})"},{"note":"If dest not specified, copies to './dist' by default.","wrong":"Fascio.copy('./src/assets')","symbol":"Fascio.copy","correct":"Fascio.copy('./src/assets', {dest: './dist/assets'})"}],"quickstart":{"code":"import Fascio from 'fascio';\nFascio.js('./src/script.js', { dest: './dist', minify: true });\nFascio.react('./src/App.jsx', { dest: './dist', minify: true });\nFascio.scss('./src/main.scss', { dest: './dist', minify: true });\nFascio.postcss('./src/main.pcss', { dest: './dist', minify: true, plugins: [require('autoprefixer')] });\nFascio.copy('./public', { dest: './dist' });","lang":"javascript","description":"Demonstrates bundling JS, React JSX, SCSS, PostCSS, and copying static assets with Fascio."},"warnings":[{"fix":"Use import or .mjs extension; convert any require() calls to import.","message":"v3 drops CommonJS support; only ESM is available.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Use { plugins: [...] } instead of { postcss: { plugins: [...] } }.","message":"PostCSS options must be passed directly in the second argument, not nested under a 'postcss' key.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Use Fascio.js with the respective esbuild plugin configured in the options.","message":"Fascio.svelte and Fascio.vue are deprecated and may be removed in a future release.","severity":"deprecated","affected_versions":">=3.0.0"},{"fix":"Always specify dest explicitly to avoid unexpected output location.","message":"When using Fascio.copy, if the dest option is omitted, files are copied to './dist' by default.","severity":"gotcha","affected_versions":">=2.0.0"},{"fix":"Pass all configuration explicitly via options; no implicit reading of package.json.","message":"Fascio no longer automatically detects the project's package.json for config.","severity":"breaking","affected_versions":">=3.0.0"}],"env_vars":null,"search_vec":"'3.0.0':16 'api':32 'asset':4,8 'built':9 'bundler':5 'cadenc':46 'cli':40 'configur':30 'copi':25 'css':37 'current':12 'differenti':28 'esbuild':11 'fascio':1 'file':26 'framework':35 'frontend':7 'javascript':44,53 'key':27 'made':52 'minim':29 'multipl':34 'plain':43 'postcss':19 'preprocessor':38 'react':21 'releas':45,48 'requir':41 'sass':20 'simpl':3 'singl':31 'stabl':13,47 'support':18 'svelt':23 'updat':50 'version':14 'vue':22","created_at":"2026-06-04T18:50:40.176980+00:00","updated_at":"2026-06-04T18:50:40.176980+00:00","problems":[{"fix":"Switch to import Fascio from 'fascio' or use dynamic import().","cause":"Using CommonJS require() on ESM-only package.","error":"TypeError: Fascio is not a function"},{"fix":"Run npm install esbuild --save-dev.","cause":"Peer dependency esbuild not installed.","error":"Error: Cannot find module 'esbuild'"},{"fix":"Install plugin (npm install autoprefixer) and pass it in options.plugins array.","cause":"PostCSS plugins not installed or not passed correctly.","error":"Error: PostCSS plugin not found: autoprefixer"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/chrismademe/fascio#readme","github":"https://github.com/chrismademe/fascio","docs":null,"changelog":null,"pypi":null,"npm":"fascio","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-04","next_check":"2026-09-02","install_tag":null}}