Automatic integration and configuration from the community.
See the Documentation.
This is a framework and ecosystem agnostic collection of recommended configurations, applied via automation, that is compatible with any kind of project, new and old.
Individual configurations may have conventions specific to a an ecosystem, but ember-apply,
itself, can be used with Svelte, React, or
whatever you want. The tools provided by ember-apply only require Node 16+.
Maybe most importantly, is that ember-apply can be used for any tool that wishes
to use high-level project-management and transformation utilities.
See #Public API.
NOTE: this package is a slightly experimental and prone to some API or organizational changes -- but is committed to strictly following semver.
npx ember-apply <feature-name>
where <feature-name> is one of the options under #Features
typescriptnpx ember-apply typescript
Automates setting up TypeScript for your V1 Addon or App.
voltanpx ember-apply volta
Automates setting up volta in a project, monorepo or solorepo.
tailwindnpx ember-apply tailwind
Automates the steps from Tailwind's installation docs
Known working capabilities:
Assumptions
app/index.htmltests/index.htmlconfig/tailwind/tailwind-webpacknpx ember-apply tailwind-webpack
Automates the official Tailwind + Ember.js guide
postcss.config.js and tailwind.config.js into the project root, it places them to config/ directory.npm start.tailwind3-vitenpx ember-apply tailwind3-vite
Automates the official Tailwind + Vite guide so that it's compatible with @embroider/app-blueprint
tailwind4-vitenpx ember-apply tailwind4-vite
Automates the official Tailwind + Vite guide so that it's compatible with @embroider/app-blueprint
embroidernpx ember-apply embroider
Automates the embroider migration from the classic ember build system for maximum-compatibility mode. See the Embroider docs
ssrimplementation tbd (pr's welcome!)
npx ember-apply ssr
Known working capabilities:
when using a package name for the <feature-name>, an ESM version of the package
will attempt to be loaded and used, invoking the default export.
npx ember-apply @scope/feature-name
Local scripts may also be used. An example of this is maybe in a private monorepo where some scripts or packages aren't published to npm.
npx ember-apply ../../path/to/some/script.js # ESM required
# or
npx ember-apply ../../path/to/some/script.mjs
packages/<ecosystem>/<feature>/index.js file
examples:
packages/ember/tailwind/index.jspackages/sveltekit/tailwind/index.jsember-apply to use any of the utility functions.
the only argument passed to this function is the working directory npx ember-apply was invoked from.
how the <your-applyable> folder is managed is totally up to whomever implements and maintains that code.JSCodeShift is used
ember-template-recast is used
posthtml is used
preset
GOAL (tbd): be compatible with npx apply
preset does not provide codemodding tools, but
it does provide basic pattern-based transforming
utilities, so it's a solid option. It also does
not have built-in support for template transforms.preset forces the install of esbuild which fails due to having the security feature ignore-scripts enabled, so preset is a non-option for folks who care
about security. (or who don't mind adding an allow-list for preset)