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
typescript
npx ember-apply typescript
Automates setting up TypeScript for your V1 Addon or App.
volta
npx ember-apply volta
Automates setting up volta in a project, monorepo or solorepo.
tailwind
npx ember-apply tailwind
Automates the steps from Tailwind's installation docs
Known working capabilities:
Assumptions
app/index.html
tests/index.html
config/tailwind/
tailwind-webpack
npx 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
.embroider
npx ember-apply embroider
Automates the embroider migration from the classic ember build system for maximum-compatibility mode. See the Embroider docs
ssr
implementation 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.js
packages/sveltekit/tailwind/index.js
ember-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
)