{"id":23274219,"url":"https://github.com/luncheon/esbuild-plugin-linaria","last_synced_at":"2025-06-20T15:11:55.083Z","repository":{"id":49784568,"uuid":"324298205","full_name":"luncheon/esbuild-plugin-linaria","owner":"luncheon","description":"An unofficial and experimental esbuild plugin for Linaria.","archived":false,"fork":false,"pushed_at":"2023-08-23T09:28:45.000Z","size":398,"stargazers_count":10,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-05-26T14:03:09.104Z","etag":null,"topics":["css-in-js","esbuild","esbuild-plugin","linaria"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"wtfpl","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/luncheon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-25T05:58:53.000Z","updated_at":"2023-07-26T03:52:00.000Z","dependencies_parsed_at":"2025-06-20T15:11:35.898Z","dependency_job_id":null,"html_url":"https://github.com/luncheon/esbuild-plugin-linaria","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/luncheon/esbuild-plugin-linaria","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncheon%2Fesbuild-plugin-linaria","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncheon%2Fesbuild-plugin-linaria/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncheon%2Fesbuild-plugin-linaria/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncheon%2Fesbuild-plugin-linaria/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/luncheon","download_url":"https://codeload.github.com/luncheon/esbuild-plugin-linaria/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/luncheon%2Fesbuild-plugin-linaria/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260967899,"owners_count":23090107,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["css-in-js","esbuild","esbuild-plugin","linaria"],"created_at":"2024-12-19T20:12:35.774Z","updated_at":"2025-06-20T15:11:50.070Z","avatar_url":"https://github.com/luncheon.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# esbuild-plugin-linaria\n\nAn unofficial and experimental [esbuild](https://esbuild.github.io/) plugin for [Linaria](https://linaria.dev/).\n\n\u003e Linaria officially supports esbuild now.  \n\u003e https://github.com/callstack/linaria/blob/master/docs/BUNDLERS_INTEGRATION.md#esbuild\n\n## Installation\n\n```sh\n$ npm i -D esbuild @luncheon/esbuild-plugin-linaria\n```\n\n## Usage Example\n\n- build.js\n\n```js\nconst esbuild = require('esbuild')\nconst linariaPlugin = require('@luncheon/esbuild-plugin-linaria')\n\n// set stylis options as needed\nconst stylis = require('stylis')\nstylis.set({ prefix: false })\n\nesbuild.build({\n  entryPoints: ['src/app.ts'],\n  outdir: 'dist',\n  bundle: true,\n  minify: true,\n  plugins: [linariaPlugin()],\n})\n```\n\n- src/app.ts\n\n```tsx\nimport { css } from '@linaria/core'\n\ndocument.body.className = css`\n  display: grid;\n\n  ::before {\n    content: '';\n  }\n`\n```\n\nRun build.js\n\n```sh\n$ node build.js\n```\n\nThen two files will be output\n\n- dist/app.js\n\n```js\n(()=\u003e{document.body.className=\"a16lghq5\";})();\n```\n\n- dist/app.css\n\n```css\n.a16lghq5{display:grid}.a16lghq5::before{content:\"\";}\n```\n\n## Options\n\nThe followings are the options for this plugin and their default values.\n\n```js\nlinariaPlugin({\n  filter: /\\.[cm]?[jt]sx?$/,\n  preprocess: (code, args) =\u003e code,\n  linariaOptions: {\n    pluginOptions: {\n      babelOptions: {\n        plugins: [\n          presets: ['@babel/preset-react', '@babel/preset-typescript'],\n        ],\n      },\n    },\n  },\n})\n```\n\n- `filter` is an option for esbuild to narrow down the files to which this plugin should be applied.  \n  https://esbuild.github.io/plugins/#filters\n- `preprocess` callback is called before the source code is transformed by Linaria.\n  - The first argument `code` is the source code content.\n  - The second argument `args` is the argument passed by esbuild. `args.path` is the file path.\n  - It must return source code content string.\n- `linariaOptions` is the option for Linaria.\n  - `preprocessor`  \n    https://github.com/callstack/linaria/blob/master/docs/BUNDLERS_INTEGRATION.md#options\n  - `pluginOptions`  \n    https://github.com/callstack/linaria/blob/master/docs/CONFIGURATION.md#options\n\n## With `esbuild-plugin-pipe`\n\nIf you use this plugin with [`esbuild-plugin-pipe`](https://github.com/nativew/esbuild-plugin-pipe), pass the same plugin instance to both `esbuild-plugin-pipe` and `esbuild`.\n\n```js\nimport esbuild from 'esbuild'\nimport pipe from 'esbuild-plugin-pipe'\nimport linariaPlugin from '@luncheon/esbuild-plugin-linaria'\n\nconst linaria = linariaPlugin({ filter: /^$/ })\n\nesbuild.build({\n  entryPoints: ['src/app.ts'],\n  outdir: 'dist',\n  bundle: true,\n  minify: true,\n  plugins: [\n    pipe({\n      filter: /\\.[jt]sx?$/,\n      plugins: [linaria],\n    }),\n    linaria,\n  ],\n})\n```\n\n## License\n\n[WTFPL](http://www.wtfpl.net/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncheon%2Fesbuild-plugin-linaria","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fluncheon%2Fesbuild-plugin-linaria","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fluncheon%2Fesbuild-plugin-linaria/lists"}