For more details: The embroider roadmap
- See actively maintained demos:
- Additional Work Needed
- embroider-build/embroider#1744
import fs from 'node:fs'; | |
import path from 'node:path'; | |
import { filesize } from 'filesize'; | |
import { minify } from 'terser'; | |
import { execa, execaCommand, $ } from 'execa'; | |
import brotli from 'brotli'; | |
const options = { | |
parse: { | |
html5_comments: false, |
For more details: The embroider roadmap
RFC#570: Background, motivation, reasoning.
Converting an addon to the v2/native format is described in detail here
NOTE: "v2 addons" are also known as "native packages", "native addons", "npm native", etc.
benefits tl;dr:
import React from 'react'; | |
export const Foo = <> | |
test {expression + expression} test | |
{[].map(item => { | |
return <div>{item}</div> | |
})} | |
<div></div> |
import Controller from '@ember/controller'; | |
import { action } from '@ember/object'; | |
import { inject as service } from '@ember/service'; | |
export default class ApplicationController extends Controller { | |
queryParams = ['test']; | |
appName = 'Ember Twiddle'; | |
@service router; |
import Controller from '@ember/controller'; | |
import { action } from '@ember/object'; | |
import { tracked } from '@glimmer/tracking'; | |
export default class ApplicationController extends Controller { | |
@tracked records = freshArray(); | |
@action addFirst() { | |
log('add:first, expect one each log'); | |
this.records = [{ id: this.records.length + 1 }, ...this.records ]; |
import Controller from '@ember/controller'; | |
export default class ApplicationController extends Controller { | |
appName = 'Ember Twiddle'; | |
} |