ember-apply
    Preparing search index...

    ember-apply

    ember-apply

    npm version CI

    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.

    npm (tag) npm (tag)

    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

    • Node 16 +
    • ESM
    npx ember-apply typescript
    

    Automates setting up TypeScript for your V1 Addon or App.

    • correct dependencies
    • correct types
    • correct configs
    npx ember-apply volta
    

    Automates setting up volta in a project, monorepo or solorepo.

    • root package.json defines node version
    • if monorepo, all other packages extend from the root package.json
    npx ember-apply tailwind
    

    Automates the steps from Tailwind's installation docs

    Known working capabilities:

    • JIT
    • Rebuilding during development

    Assumptions

    • entrypoint for your app is located at app/index.html
    • entrypoint for your tests is located at tests/index.html
    • tailwind files are placed in config/tailwind/
    npx ember-apply tailwind-webpack
    

    Automates the official Tailwind + Ember.js guide

    • Instead of placing postcss.config.js and tailwind.config.js into the project root, it places them to config/ directory.
    • Does not need any special command for building tailwind styles they will be built (and watched) together with npm start.
    npx ember-apply tailwind3-vite
    

    Automates the official Tailwind + Vite guide so that it's compatible with @embroider/app-blueprint

    npx ember-apply tailwind4-vite
    

    Automates the official Tailwind + Vite guide so that it's compatible with @embroider/app-blueprint

    npx ember-apply embroider
    

    Automates the embroider migration from the classic ember build system for maximum-compatibility mode. See the Embroider docs

    implementation tbd (pr's welcome!)

    npx ember-apply ssr
    

    Known working capabilities:

    • tbd

    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
    • clone this repository
    • create a packages/<ecosystem>/<feature>/index.js file examples:
      • packages/ember/tailwind/index.js
      • packages/sveltekit/tailwind/index.js
    • have a function exported as the default export. within this function, you may import form 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.
      • currently, 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)