Plugins, built around webpack-chain, that make creating webpack configs easier.
Plugins
- BrowserFS: Replace the native
fsmodule with the BrowserFS equivalent.- Note: must
yarn add browserfsin your project if using this plugin.
- Note: must
- Bugsnag: Upload sourcemaps to bugsnag.
- CSS: Import css.
- Fonts: Import fonts.
- HTML: Render an html template.
- Javascript: Parse javascript.
- Monaco: Import monaco.
- Note: must
yarn add monaco-editorin your project if using this plugin.
- Note: must
- Optimizations: Minification, chunks, etc.
- Presentation: Better terminal output.
- Public: Use a public assets folder.
- Serve: Serve up a hot reloading dev environment.
- Stylus: Import stylus.
- Typescript: Parse typescript (and optionally also javascript).
- Web Workers: Import web workers.
Installation
# latest stable
yarn add -D @stoplight/webpackUsage
In your webpack.config.ts file:
import { createConfig } from "@stoplight/webpack"; import * as path from "path"; import webpack from "webpack"; import { buildEnv } from "./env"; const isElectron = process.env.RUN_CONTEXT === "desktop"; const config: webpack.Configuration = createConfig({ srcDir: path.resolve(process.cwd(), "src"), distDir: isElectron ? path.resolve(process.cwd(), "desktop", "src", "dist") : path.resolve("desktop", "src", "dist"), publicDir: path.resolve(process.cwd(), "src", "public"), isElectron, analyze: false, debug: false, stats: undefined, plugins: { browserfs: isElectron ? undefined : {}, bugsnag: undefined, css: undefined, fonts: {}, html: { // string to assign to the head title tag title: "Stoplight Studio", // object to assign to window.env in a head tag script env: buildEnv(), // string of html to be inserted towards the top of the head tag metaHtml: "", // string of html to be inserted towards the bottom of the head tag headHtml: "", // string of html to be inserted towards the bottom of the body tag bodyHtml: "" }, javascript: undefined, monaco: {}, optimizations: {}, presentation: {}, public: undefined, serve: {}, stylus: undefined, typescript: {}, workers: undefined }, onBeforeBuild: _config => { // ...do whatever you want w config, which is an instance of webpack-chain } }); export default config;
Contributing
- Clone repo
- Create / checkout
feature/{name},chore/{name}, orfix/{name}branch - Install deps:
yarn setup - Make your changes
- Run tests:
yarn test.prod - Stage relevant files to git
- Commit:
yarn commit. NOTE: Commits that don't follow the conventional format will be rejected.yarn commitcreates this format for you, or you can put it together manually and then do a regulargit commit. - Push:
git push - Open PR targeting the
developbranch