Giter VIP home page Giter VIP logo

embroider's People

Contributors

alexlafroscia avatar bendemboski avatar bertdeblock avatar bluecutofficial avatar chancancode avatar charlespierce avatar dependabot[bot] avatar dnalagatla avatar ef4 avatar eoneill avatar ijlee2 avatar jenweber avatar josemarluedke avatar krasnoukhov avatar krisselden avatar lifeart avatar lolmaus avatar mansona avatar mydea avatar nullvoxpopuli avatar patricklx avatar raycohen avatar rwjblue avatar simonihmig avatar sparshithnr avatar stefanpenner avatar thoov avatar turbo87 avatar void-malex avatar windvis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

embroider's Issues

App code generation

There are a few addons that attempt to generate code across code type boundaries; e.g. they analyze templates and generate JS files from the information. In the current system these things are quite complicated and limited due to various constraints. Is the new system designed to ease these problems?

Error in addon / Funnel: Expected Broccoli node, got null for inputNodes[0]

ERROR Summary:

  - broccoliBuilderErrorStack: [undefined]
  - code: [undefined]
  - codeFrame: [undefined]
  - errorMessage: Funnel: Expected Broccoli node, got null for inputNodes[0]
  - errorType: [undefined]
  - location:
    - column: [undefined]
    - file: [undefined]
    - line: [undefined]
  - message: Funnel: Expected Broccoli node, got null for inputNodes[0]
  - name: TypeError
  - nodeAnnotation: [undefined]
  - nodeName: [undefined]
  - originalErrorMessage: [undefined]
  - stack: TypeError: Funnel: Expected Broccoli node, got null for inputNodes[0]
    at Funnel.Plugin (C:\Users\lifeart\Documents\repos\ts-test\node_modules\broccoli-plugin\index.js:23:13)
    at new Funnel (C:\Users\lifeart\Documents\repos\ts-test\node_modules\broccoli-funnel\index.js:57:10)
    at V1App.combinedVendor (C:\Users\lifeart\Documents\repos\ts-test\node_modules\@embroider\compat\src\v1-app.js:269:13)
    at V1App.synthesizeVendorPackage (C:\Users\lifeart\Documents\repos\ts-test\node_modules\@embroider\compat\src\v1-app.js:299:67)
    at CompatAddons.getVendorPackage (C:\Users\lifeart\Documents\repos\ts-test\node_modules\@embroider\compat\src\compat-addons.js:77:22)
    at new CompatAddons (C:\Users\lifeart\Documents\repos\ts-test\node_modules\@embroider\compat\src\compat-addons.js:34:32)
    at Object.defaultPipeline [as compatBuild] (C:\Users\lifeart\Documents\repos\ts-test\node_modules\@embroider\compat\src\default-pipeline.js:11:18)
    at module.exports (C:\Users\lifeart\Documents\repos\ts-test\ember-cli-build.js:17:38)
    at Builder.readBuildFile (C:\Users\lifeart\Documents\repos\ts-test\node_modules\ember-cli\lib\models\builder.js:52:14)
    at Builder.setupBroccoliBuilder (C:\Users\lifeart\Documents\repos\ts-test\node_modules\ember-cli\lib\models\builder.js:66:22)

Tests?

Not sure if I've missed something in the layout, but I'm curious how you've been testing as there don't seem to be tests in the repo at all...

appStyles tree merge happens too late

We need to merge the appStyles trees from all classic addons before we try to transpile the app's stylesheets. Because they might be trying to import from each other.

Instructions on how to use this on an app

First of all, thanks a lot for taking this effort. I would like to try this on my own ember app, but I can't seem to find any instructions on how to use this to build my ember app?

Do I use this like an addon, is this available as part of an ember-cli unstable build? may be a link to some sample repo using this would be nice.

Support in-repo addons

Currently, I believe only addons installed in node_modules get transformed correctly from V1 to V2. We should support in-repo addons as well, that live in lib/.

From @ef4:

we would need to discover that they exist and compile them to v2 format, same as other addons. Then in the output of the phase 2 build, we should put them into the app's devDependencies list and add symlinks, so that the final stage packager can treat them as regular NPM packages.
probably we can use one of the package.json features like

devDependencies: {
  "your-in-repo-addon": "file:./lib/your-in-repo-addon"
}

we would still need to make the symlink, because NPM would have done that at NPM install time
they will now be able to conflict with NPM package names, but that was already kinda true, since if you had an addon directory in an in-repo addon, it's already fighting with other true NPM addons over the package name;
if we find real conflicts (where somebody already has a dep in package.json with the same name), we can even rename them. There's already machinery for remapping imports in your app code, to follow the rename.

Stage1 should run AST transforms and then reserialize to HBS

Any addon that applies custom AST transforms to itself needs to run those transforms during the stage1 build, as detailed in SPEC.md. That feature is still missing.

An example of where this breaks apps is that ember-basic-dropdown uses ember-maybe-in-element, which is implemented as an AST transform. If you get A component or helper named "maybe-in-element" could not be found, this is why.

Need a feature for telling stage3 to ignore some script tags

We need a way to tell the stage3 packagers to ignore some script tags (and probably stylesheets) because some may come dynamically from elsewhere. We already ignore ones on other origins, but even same origin may need to be ignored.

This comes up immediately on classic apps for livereload.js and testem.js, which are dynamically served by middleware in ember-cli.

Most likely this should be implemented as a data-attribute on the tags, like data-embroider-ignore. Stage 3 packagers should respect that and then strip it off.

absolute paths passed to app.import

Apparently sometimes people pass absolute paths to app.import. At the moment we rewrite those incorrectly like /Some/absolute -> .//Some/absolute

Support for nested modules

Apologies if this is already covered, I just wanted to get this down so I don't forget.

Ember's JS module API follows a set of rules to help make them more consistent and easier to remember. In particular, classes are intended to be a default export, while things like helper functions should be named exports. Given that a single package may have multiple classes, Ember uses nested modules (e.g. import MapWithDefault from '@ember/map/with-default').

Naturally, addons may want to follow this style, particularly "first-party" addons like Ember Data. We should make sure we have an answer for how addons can provide something like import JSONAdapter from '@ember-data/adapter/json' conveniently. It would not be ideal to require users to have to import from paths like @ember-data/adapter/src/data/adapters/json.

cc @runspired

Cannot find addon.scss for addon that works otherwise

I get an error when running ember serve in an app that has an addon that exports sass styles.
The addon has addon/styles/addon.scss (which is empty). The actual styles are in the app folder.

In /Users/ilya/workspace/build/tmp/sass_compiler-input_base_path-14F44Vcb.tmp there is a single _app_styles_ folder and that has all files from someaddon/app/styles/.

File not found: /addon.scss
in any of the following include paths:
  /Users/ilya/workspace/build/tmp/sass_compiler-input_base_path-14F44Vcb.tmp
        at OneShot
-~- created here: -~-
    at new Plugin (/Users/ilya/workspace/build/node_modules/broccoli-plugin/index.js:7:31)
    at new OneShot (/Users/ilya/workspace/build/node_modules/@embroider/compat/src/one-shot.js:14:9)
    at Object.cachedBuildCompatAddon [as default] (/Users/ilya/workspace/build/node_modules/@embroider/compat/src/build-compat-addon.js:15:16)
    at CompatAddons.movedAddons.map.oldPkg (/Users/ilya/workspace/build/node_modules/@embroider/compat/src/compat-addons.js:33:105)
    at Array.map (<anonymous>:null:null)
    at new CompatAddons (/Users/ilya/workspace/build/node_modules/@embroider/compat/src/compat-addons.js:33:63)
    at Object.defaultPipeline [as compatBuild] (/Users/ilya/workspace/build/node_modules/@embroider/compat/src/default-pipeline.js:11:18)
    at module.exports (/Users/ilya/workspace/build/ember-cli-build.js:50:39)
    at Builder.readBuildFile (/Users/ilya/workspace/build/node_modules/ember-cli/lib/models/builder.js:52:14)
    at Builder.setupBroccoliBuilder (/Users/ilya/workspace/build/node_modules/ember-cli/lib/models/builder.js:66:22)
    at new Builder (/Users/ilya/workspace/build/node_modules/ember-cli/lib/models/builder.js:32:10)
    at ServeTask.run (/Users/ilya/workspace/build/node_modules/ember-cli/lib/tasks/serve.js:45:55)
    at Promise.resolve.then (/Users/ilya/workspace/build/node_modules/ember-cli/lib/models/command.js:243:46)
    at tryCatcher (/Users/ilya/workspace/build/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:323:19)
    at invokeCallback (/Users/ilya/workspace/build/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:495:31)
    at /Users/ilya/workspace/build/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:559:14
    at flush (/Users/ilya/workspace/build/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:2402:5)
    at processTicksAndRejections (internal/process/next_tick.js:74:9)

Tree Shaking test cases

@eldeffo on twitter raised some good examples: https://twitter.com/eldeffo/status/1105989202653728769

The current plan of record should handle the use-cases he described, but I wanted to open an issue so we can ensure we explicitly test these scenarios.

Links in HTML must all be root-relative

We're emitting some links in HTML that are relative (like 'assets/thing.js'). This breaks on deeper routes when using History Location routing (the default Ember routing). All links must be at least root relative (like '/assets/thing.js').

Addons as scoped packages?

Because embroider will support node package resolution, does it follow that builds with embroider will support developing an add-on as a scoped package? Or are there other known issues with scoped packages in existing build tree steps that need to be addressed independently? (I'm trying to see what a checklist for add-ons as NPM scoped packages would look like.)

packageRules dependsOnModule should register with loader.js

In packageRules, you can already declare that a given module dependsOnComponents, and this will resolve the components to their corresponding files and add imports for them and call window.define() for them so that they will be fully compatible with existing ember code.

But dependsOnModules just synthesizes the import. It should also call window.define() but doesn't. There's not much point is only synthesizing the import, as this feature exists to achieve compatible with existing code that expects to use the AMD loader.

Issues mixing babel versions

The app is depending on 7.x \w decorators, but something is going sideways.
Here is a stack trace (although I will debug more)

< Requires Babel "^7.0.0-0", but was loaded with "6.26.3". If you are sure you have a compatible version of @babel/core, it is likely that something in your build process is loading the wrong version. Inspect the stack trace of this error to look for the first entry that doesn't mention "@babel/core" or "babel-core" to see what is
 calling Babel.
<     at throwVersionError (/Users/spenner/l/pemberly-example-web_trunk/node_modules/@babel/helper-plugin-utils/lib/index.js:65:11)
<     at Object.assertVersion (/Users/spenner/l/pemberly-example-web_trunk/node_modules/@babel/helper-plugin-utils/lib/index.js:13:11)
<     at _default (/Users/spenner/l/pemberly-example-web_trunk/node_modules/@babel/plugin-proposal-decorators/lib/index.js:43:7)
<     at /Users/spenner/l/pemberly-example-web_trunk/node_modules/@babel/helper-plugin-utils/lib/index.js:19:12
<     at Function.memoisePluginContainer (/Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/file/options/option-manager.js:113:13)
<     at Function.normalisePlugin (/Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/file/options/option-manager.js:146:32)
<     at /Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/file/options/option-manager.js:184:30
<     at Array.map (<anonymous>)
<     at Function.normalisePlugins (/Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/file/options/option-manager.js:158:20)
<     at OptionManager.mergeOptions (/Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/file/options/option-manager.js:234:36)
<     at OptionManager.init (/Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368:12)
<     at File.initOptions (/Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/file/index.js:212:65)
<     at new File (/Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/file/index.js:135:24)
<     at Pipeline.transform (/Users/spenner/src/embroider-build/embroider/node_modules/babel-core/lib/transformation/pipeline.js:46:16)
<     at transpile (/Users/spenner/src/embroider-build/embroider/node_modules/babel-loader/lib/index.js:50:20)
<     at Object.module.exports (/Users/spenner/src/embroider-build/embroider/node_modules/babel-loader/lib/index.js:173:20)
< ERROR in ./assets/test.js

Unified parallelBabel API

Both broccoli-babel-transpiler and ember-cli-htmlbars-inline-precompile have invented their own mutually-incompatible solutions for plugin serialization.

broccoli-babel-transpiler allows a _parallelBabel key on any value within the plugin config, which will cause that value to get replaced based on its requireFile, buildWith, params, and/or useMethod properties. Everything but requireFile is optional.

ember-cli-htmlbars-inline-precompile allows a parallelBabel key on only the top-level values within the plugin config, which will cause that value to get replaced based on its requireFile, buildWith, and params, properties, which are all mandatory.

We're now stuck with these, but before this situation gets any worse I want to refactor both of them and embroider to share one library.

Improve rebuild file stability

Currently the stage2 app build touches all the files on every incremental build, which probably deoptimizes rebuild performance in the stage 3 packager. We can optimize to leave unchanged files untouched.

Provide backward-compatible deduplicator

We need to give people instructions on how to address addon duplicates.

I started a tool in the dedupe branch that can give a pretty good summary of which relevant things are duplicated and why. Probably it should have a mode where it can pick the same "winner" that classic ember-cli would have picked, and then either emit yarn resolutions (which is nice because once you have them they stick around using nothing but normal workflow) or rewrite your node_modules (which would need to be done each time after you run npm or yarn, but which lets us do finer-grained deduplication via symlinks).

By "finer grained deduplication" I mean we can make sure there's no more than one copy of the same library version, even if the consumers of it don't share any single node_modules level in the hierarchy.

when using ember-decorators ember-data becomes mandetory

I realize this was done intentionally:
https://github.com/embroider-build/embroider/blob/master/packages/compat/src/compat-adapters/ember-decorators.ts#L8

But, I believe ember-decorators ember-data stuff is currently pay-as-you-go, but with embroider it becomes mandetory. Likely a path forward for ember-decorators that does not enforce ember-data is required.

(this was fun to debug, i couldn't figure out how ember-data was becoming a peerDependency)

Don't watch all of project root

We are accidentally causing broccoli to watch the whole project root.

See v1-app.js. The rootTree getter is too broad, each place that is building off it should create its own narrower WatchedTree.

Detect and rewrite import of all hbs files

Currently, Embroider has a Babel plugin that rewrites all imports of template files to include the .hbs suffix, so import template from '../../templates/my-component' becomes import template from '../../templates/my-component.hbs'.

Unfortunately, this currently relies on detecting /templates/ in the import path to know that the type being imported is a template. We should instead provide the Babel plugin a list of template files ahead of time, so it can append the suffix correctly, no matter what the import path.

Motivating addon: ember-collapsible-panel, where component files do import template from './template': https://github.com/embermap/ember-collapsible-panel/blob/master/addon/components/cp-panel/component.js#L6

Don't emit multiple shims for same module name

We emit shim modules to connect build-time resolved modules with runtime modules that we can't prove aren't needed. They will necessarily get flattened into the runtime AMD namespace, so we should definitely not emit multiple shims that target the same name.

For max compat, we should copy ember-cli's existing priority order here.

addon test support rewriter bug

The addon test support rewriter can error when an addon emits my-name.js and doesn't have a my-name directory.

ember-cli-qunit 4.4.0 reproduces this behavior.

Rollup error from ember-data

I'm using embroider 0.0.8 in my app. I have this error

โžœ  web_app git:(staging) โœ— ember s
Cannot stop: not the current node.
Build Error (OneShot)

Build Canceled: Broccoli Builder ran into an error with `Rollup` plugin. ๐Ÿ’ฅ
Could not resolve '../../../-debug' from tmp/rollup-cache_path-OzrZ2oRb.tmp/build/-private/system/references/belongs-to.js


Stack Trace and Error Report: /var/folders/0v/jpdg1flj3qscvbvt728pgt8c0000gn/T/error.dump.f9e550f228f39a54667691efaab0d6b6.log

Discussion: babel-plugin-macros and babel caching

I'm evaluating babel-plugin-macros as a possible standardized solution for our build-time configuration needs.

The idea would be that the addon spec would explicitly allow addons to have usages of babel-plugin-macros in their published code, and we guarantee that the macros will run during the app build.

I think it meets our needs and means we don't need to write much custom infrastructure, other than possibly having some nice sets of pre-made macros for common things, like conditionally including a block of code based on the host ember version.

But I have identified one major challenge, which is babel caching. In general, caching is clearly a feature that belongs in babel core, and they have mentioned having it on their roadmap, but it doesn't appear to be imminent. In ember-cli, we rely on the custom scheme in broccoli-babel-transpiler that lets babel plugins expose cache key information. But this scheme can't cover the things that babel-plugin-macros do.

As a motivating example, consider a usage of the preval macro:

import preval from 'babel-plugin-preval/macro';
const enableFeature = preval`module.exports = Boolean(process.env.ENABLE_IT)`;

The only babel plugin in the actual babel config here would be babel-plugin-macros. It's not until after that plugin transpiles this file that it even knows the preval macro is in use, and even then it doesn't really have any visibility into what external data should invalidate the cache.

This problem is more general than just babel-plugin-macros, and even if we don't choose to adopt it this same problem is going to crop up for any babel plugin that can do the kind of build-time code modification that we want to support.

I went looking at how other projects solve this problem, since babel-plugin-macros is relatively popular. create-react-app includes it by default. Their solution is ugly but works. They apply a string-based heuristic to source code files to see if macros might be in use, and any file that might have macros is excluded entirely from caching. The heuristic does not have false negatives (it always detects true macro usage, because macros follow a strict naming convention) but it has false positives (because people could use the word "macro" for other things.

We could do that too, or we could do a slightly more sophisticated thing if we allowed babel plugins to tell us after processing a given file that file file should be volatile (meaning not safe to cache). This would eliminate the false positives.

I'm not particularly worried about the performance impact of disabling caching for specific files, because I don't expect most files to need macros and you can always choose to structure your code so that most of it is in files that don't have macros, and some small macro-containing files import the different implementations.

This issue raises to level of something that we'll want to solve in both the existing ember-cli toolchain (meaning broccoli-babel-transpiler) and in embroider, because we will want addon authors to be able to target both.

I see three levels of solutions, in rising complexity:

  1. Adopt the same string-based heuristic as create-react-app. It's simple and it gives you correct builds, at the cost of not caching some things that might have actually been cacheable.

  2. Extend our babel-plugin caching scheme so that plugins can inform us after processing a file that the file should be treated as volatile. This scopes down the cost a little as we won't have false positives and we'll only make truly macro-using files volatile. We would need to PR babel-plugin-macros to expose this feature, and maintain a fork if they don't care about it

  3. Extend our caching scheme even further so that macro authors themselves would have a protocol for describing cacheability. This would make it possible to write macros that don't opt out of caching entirely, but it wouldn't help with the most general purpose macros like preval or codegen, and it's pretty nice to use those ones.

IMO, I think option 1 is sufficient if we can get consensus to implement it in broccoli-babel-transpiler. Either directly (which would be easier, but would cause broccoli-babel-transpiler to have a weird level of knowledge about babel-plugin-macros in particular) or by adding some new hook that babel plugin authors can use to control this behavior (which would require us to fork or wrap babel-plugin-macros to use said hook).

embroider don't works with ember 3.7.1

machine:

mano git:(master) โœ— ember -v
ember-cli: 3.7.1
node: 8.11.4
os: darwin x64

I created a new ember app with ember new mano, installed the embroider following the README and ran ember s. But I have these errors.

Building into /private/tmp/embroider-workspace
Hash: 11ad6998f52a90aa172e
Version: webpack 4.29.5
Time: 2163ms
Built at: 2019-02-20 16:39:42
                                  Asset      Size                               Chunks             Chunk Names
          chunk.1c857f14af7913b1f074.js  9.72 KiB                           index.html  [emitted]  index.html
          chunk.6e02e4c57a8b5ecc6e18.js  30.1 KiB                     tests/index.html  [emitted]  tests/index.html
          chunk.77021d188cba9b1d6f06.js  33.5 KiB          index.html~tests/index.html  [emitted]  index.html~tests/index.html
          chunk.8c965dde9d1b54710088.js  2.95 MiB  vendors~index.html~tests/index.html  [emitted]  vendors~index.html~tests/index.html
          chunk.b9af59aa42d2ff42cc56.js   535 KiB             vendors~tests/index.html  [emitted]  vendors~tests/index.html
        index.html~tests/index.html.css   1 bytes          index.html~tests/index.html  [emitted]  index.html~tests/index.html
vendors~index.html~tests/index.html.css  2.15 KiB  vendors~index.html~tests/index.html  [emitted]  vendors~index.html~tests/index.html
           vendors~tests/index.html.css  8.22 KiB             vendors~tests/index.html  [emitted]  vendors~tests/index.html
Entrypoint index.html = vendors~index.html~tests/index.html.css chunk.8c965dde9d1b54710088.js index.html~tests/index.html.css chunk.77021d188cba9b1d6f06.js chunk.1c857f14af7913b1f074.js
Entrypoint tests/index.html = vendors~index.html~tests/index.html.css chunk.8c965dde9d1b54710088.js vendors~tests/index.html.css chunk.b9af59aa42d2ff42cc56.js index.html~tests/index.html.css chunk.77021d188cba9b1d6f06.js chunk.6e02e4c57a8b5ecc6e18.js
[0] multi script-loader!./ember-cli-live-reload.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js ./assets/mano.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css 112 bytes {index.html} [built]
[1] multi script-loader!./ember-cli-live-reload.js script-loader!./testem.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css 244 bytes {tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./_ember_env_.js] /Users/villander/Projects/mano/node_modules/script-loader!./_ember_env_.js 311 bytes {index.html~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js 427 bytes {vendors~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js 451 bytes {vendors~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js 427 bytes {vendors~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js 423 bytes {vendors~index.html~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js 415 bytes {vendors~index.html~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js 415 bytes {vendors~index.html~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js 417 bytes {vendors~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js 453 bytes {vendors~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js 407 bytes {vendors~tests/index.html} [built]
[../../../Users/villander/Projects/mano/node_modules/script-loader/index.js!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js] /Users/villander/Projects/mano/node_modules/script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js 411 bytes {vendors~tests/index.html} [built]
[./assets/mano.css] 39 bytes {index.html~tests/index.html} [built]
[./assets/mano.js] 9.08 KiB {index.html~tests/index.html} [built]
    + 157 hidden modules

WARNING in ./node_modules/@ember/test-helpers/ember-test-helpers/wait.js 1:0-116
"export '_setupPromiseListeners' was not found in '../settled'
 @ ./assets/test.js
 @ multi script-loader!./ember-cli-live-reload.js script-loader!./testem.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css

WARNING in ./node_modules/@ember/test-helpers/ember-test-helpers/wait.js 1:0-116
"export '_teardownPromiseListeners' was not found in '../settled'
 @ ./assets/test.js
 @ multi script-loader!./ember-cli-live-reload.js script-loader!./testem.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css

ERROR in ./node_modules/ember-welcome-page/components/welcome-page.js
Module not found: Error: Can't resolve '../templates/components/welcome-page.hbs' in '/private/tmp/embroider-workspace/node_modules/ember-welcome-page/components'
 @ ./node_modules/ember-welcome-page/components/welcome-page.js 2:0-62 5:2-8
 @ ./assets/mano.js
 @ multi script-loader!./ember-cli-live-reload.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js ./assets/mano.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css

ERROR in ./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js ./assets/mano.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css (multi script-loader!./ember-cli-live-reload.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js ./assets/mano.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css)
Module not found: Error: Can't resolve '/private/tmp/embroider-workspace/ember-cli-live-reload.js' in '/private/tmp/embroider-workspace'
 @ ./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js ./assets/mano.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css (multi script-loader!./ember-cli-live-reload.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js ./assets/mano.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css) index.html[0]

ERROR in ./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css (multi script-loader!./ember-cli-live-reload.js script-loader!./testem.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css)
Module not found: Error: Can't resolve '/private/tmp/embroider-workspace/ember-cli-live-reload.js' in '/private/tmp/embroider-workspace'
 @ ./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css (multi script-loader!./ember-cli-live-reload.js script-loader!./testem.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css) tests/index.html[0]

ERROR in ./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css (multi script-loader!./ember-cli-live-reload.js script-loader!./testem.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css)
Module not found: Error: Can't resolve '/private/tmp/embroider-workspace/testem.js' in '/private/tmp/embroider-workspace'
 @ ./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css (multi script-loader!./ember-cli-live-reload.js script-loader!./testem.js script-loader!./_ember_env_.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/loader/loader.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/jquery/jquery.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember.debug.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember/ember-testing.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/monkey-patches.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/qunit-configuration.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/qunit-dom.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/define-dummy-module.js script-loader!./node_modules/@embroider/synthesized-vendor/vendor/overwrite-qunit-dom-root-element.js ./assets/mano.js ./assets/test.js ./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css ./assets/mano.css ./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css ./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css) tests/index.html[1]
Child mini-css-extract-plugin ../../../Users/villander/Projects/mano/node_modules/css-loader/index.js??ref--7-1!assets/mano.css:
    Entrypoint mini-css-extract-plugin = *
    [../../../Users/villander/Projects/mano/node_modules/css-loader/index.js?!./assets/mano.css] /Users/villander/Projects/mano/node_modules/css-loader??ref--7-1!./assets/mano.css 198 bytes {mini-css-extract-plugin} [built]
    [../../../Users/villander/Projects/mano/node_modules/css-loader/lib/css-base.js] /Users/villander/Projects/mano/node_modules/css-loader/lib/css-base.js 2.21 KiB {mini-css-extract-plugin} [built]
Child mini-css-extract-plugin ../../../Users/villander/Projects/mano/node_modules/css-loader/index.js??ref--7-1!node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css:
    Entrypoint mini-css-extract-plugin = *
    [../../../Users/villander/Projects/mano/node_modules/css-loader/index.js?!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css] /Users/villander/Projects/mano/node_modules/css-loader??ref--7-1!./node_modules/@embroider/synthesized-vendor/vendor/ember-qunit/test-container-styles.css 788 bytes {mini-css-extract-plugin} [built]
    [../../../Users/villander/Projects/mano/node_modules/css-loader/lib/css-base.js] /Users/villander/Projects/mano/node_modules/css-loader/lib/css-base.js 2.21 KiB {mini-css-extract-plugin} [built]
Child mini-css-extract-plugin ../../../Users/villander/Projects/mano/node_modules/css-loader/index.js??ref--7-1!node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css:
    Entrypoint mini-css-extract-plugin = *
    [../../../Users/villander/Projects/mano/node_modules/css-loader/index.js?!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css] /Users/villander/Projects/mano/node_modules/css-loader??ref--7-1!./node_modules/@embroider/synthesized-vendor/vendor/qunit/qunit.css 8.49 KiB {mini-css-extract-plugin} [built]
    [../../../Users/villander/Projects/mano/node_modules/css-loader/lib/css-base.js] /Users/villander/Projects/mano/node_modules/css-loader/lib/css-base.js 2.21 KiB {mini-css-extract-plugin} [built]
Child mini-css-extract-plugin ../../../Users/villander/Projects/mano/node_modules/css-loader/index.js??ref--7-1!node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css:
    Entrypoint mini-css-extract-plugin = *
    [../../../Users/villander/Projects/mano/node_modules/css-loader/index.js?!./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css] /Users/villander/Projects/mano/node_modules/css-loader??ref--7-1!./node_modules/@embroider/synthesized-vendor/vendor/welcome-page.css 2.45 KiB {mini-css-extract-plugin} [built]
    [../../../Users/villander/Projects/mano/node_modules/css-loader/lib/css-base.js] /Users/villander/Projects/mano/node_modules/css-loader/lib/css-base.js 2.21 KiB {mini-css-extract-plugin} [built]
Build Error (PackagerRunner)

webpack returned errors to @embroider/webpack


Stack Trace and Error Report: /var/folders/0v/jpdg1flj3qscvbvt728pgt8c0000gn/T/error.dump.6c8ac724796488a63ca93ed193ef2661.log

```

WARNING: Your build is slower because some babel plugins are non-serializable []

Building into /private/var/folders/6y/_8qpkt114jzb442txt_9w_2c0000gn/T/embroider-cjbPbI
WARNING: Your build is slower because some babel plugins are non-serializable []

I suppose the above warning was supposed to include the names of the plugins that are not serializable, but apparently this was not the case. Is there another way to find out what went wrong here?

Babel transpilation for npm dependencies

https://github.com/embroider-build/embroider/blob/master/SPEC.md#own-javascript mentions that by default npm dependencies should not be transpiled. As I had already written in embroider-build/ember-auto-import#41, I believe that we should apply ES latest to ES target by default for npm dependencies as many of them now target Node.js 8 or 10, which supports a lot ES features than some of the relevant browsers.

The spec mentions:

Double transpilation is not safe in general, since choices get made about how to map between modules, AMD, UMD, etc.

I don't understand this part. I agree that double transpilation of module systems is a problem, but transpiling all other syntax to ES target syntax does not appear problematic to me. Am I missing something?

make an alternative to webpack's script-loader

@embroider/webpack uses script-loader because many of our classic app.imported files are truly scripts that should execute in a script context, not modules that should execute in a module context.

But script-loader is pretty limited. It packs your code as a string and evals it (even in production mode), which is likely to run afoul of strict CSP rules, and may have some performance impact since it shifts when parsing happens.

It also doesn't support minification at all. And while we could layer that in without much difficulty, given the other issues I think it's better to just move away from script-loader.

I suspect these files should just sidestep webpack entirely, as script context is very much against-the-grain of webpack.

[Issue] buildAddonStyles (implicit-styles)

Build Error (WaitForTrees)
Cannot find module './@linkedin/artdeco-button.css' from '/private/tmp/embroider-workspace/node_modules/@linkedin/artdeco-button'

Specifically:

result.push(resolve.sync(mod, { basedir: addon.root }));

Is attempting to use the node resolution algorithm, but the intended staged target of @linkedin/artdeco-button residing in /private/tmp/embroider-workspace/node_modules/@linkedin/@artdeco-button is not resolvable, as it has no resolvable main.

As it's package.json main property is empty, the resolution algorithm will attempt to tr3eat @linkedin/artdeco-button/index.js as it's implicit main, but as that file is not present, the resolution algorithm assumes a miss and moves on.

It is worth pointing out that @linkedin/artdeco-button/index.scss does exist, but that file is not considered by the node resolution algorithm.

I think i have a vague idea of what your goal is here, but it isn't sufficiently crisp to suggest a path forward. We should likely sync up.

error.dump.log
=================================================================================

ENV Summary:

  TIME: Sun Feb 24 2019 12:55:25 GMT-0800 (Pacific Standard Time)
  TITLE: ember
  ARGV:
  - /Users/spenner/.gradle/pemberly/node-v10.6.0-darwin-x64/bin/node
  - /Users/spenner/.config/node/default/bin/ember
  - b
  EXEC_PATH: /Users/spenner/.gradle/pemberly/node-v10.6.0-darwin-x64/bin/node
  TMPDIR: /var/folders/4r/whc65vwj1xggvvky3yy1cp9m000mw4/T
  SHELL: /usr/local/bin/fish
  PATH:
  - /Users/spenner/.gradle/pemberly/yarnpkg-1.13.0/bin
  - /Users/spenner/.gradle/pemberly/node-v10.6.0-darwin-x64/bin
  - /Users/spenner/l/pemberly-example-web_trunk/.gradle/pemberly
  - /Users/spenner/.cargo/bin
  - /Users/spenner/.fzf/bin
  - /Users/spenner/.local/bin
  - /Applications/Racket v7.1/bin/
  - /Users/spenner/.config/node/default/bin
  - /usr/local/bin
  - /usr/bin
  - /bin
  - /usr/sbin
  - /sbin
  - /usr/local/linkedin/bin
  - /Applications/VMware
  - Fusion.app/Contents/Public
  - /export/content/linkedin/bin
  - /Applications/Wireshark.app/Contents/MacOS
  - /Users/spenner/.local/bin
  - /Applications/Racket v7.1/bin/
  - /Users/spenner/.config/node/default/bin
  PLATFORM: darwin x64
  FREEMEM: 2144165888
  TOTALMEM: 17179869184
  UPTIME: 1119779
  LOADAVG: 2.14306640625,1.88232421875,1.93408203125
  CPUS:
  - Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz - 3100
  - Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz - 3100
  - Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz - 3100
  - Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz - 3100
  - Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz - 3100
  - Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz - 3100
  - Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz - 3100
  - Intel(R) Core(TM) i7-7920HQ CPU @ 3.10GHz - 3100
  ENDIANNESS: LE
  VERSIONS:
  - ares: 1.14.0
  - cldr: 33.0
  - http_parser: 2.8.0
  - icu: 61.1
  - modules: 64
  - napi: 3
  - nghttp2: 1.32.0
  - node: 10.6.0
  - openssl: 1.1.0h
  - tz: 2018c
  - unicode: 10.0
  - uv: 1.21.0
  - v8: 6.7.288.46-node.13
  - zlib: 1.2.11

ERROR Summary:

  - broccoliBuilderErrorStack: Error: Cannot find module './@linkedin/artdeco-button.css' from '/private/tmp/embroider-workspace/node_modules/@linkedin/artdeco-button'
    at Function.module.exports [as sync] (/Users/spenner/src/embroider-build/embroider/node_modules/resolve/lib/sync.js:58:15)
    at AppBuilder.impliedAddonAssets (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:109:51)
    at AppBuilder.impliedAssets (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:84:27)
    at AppBuilder.insertEmberApp (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:150:35)
    at AppBuilder.prepareAsset (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:196:18)
    at AppBuilder.prepareAssets (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:206:18)
    at AppBuilder.updateAssets (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:270:27)
    at AppBuilder.build (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:324:38)
    at WaitForTrees.wait_for_trees_1.default [as buildHook] (/Users/spenner/src/embroider-build/embroider/packages/core/src/build-stage.js:37:31)
    at process._tickCallback (internal/process/next_tick.js:68:7)
  - code: [undefined]
  - codeFrame: Cannot find module './@linkedin/artdeco-button.css' from '/private/tmp/embroider-workspace/node_modules/@linkedin/artdeco-button'
  - errorMessage: Cannot find module './@linkedin/artdeco-button.css' from '/private/tmp/embroider-workspace/node_modules/@linkedin/artdeco-button'
        at WaitForTrees (@embroider/compat/app)
-~- created here: -~-
    at new Plugin (/Users/spenner/src/embroider-build/embroider/node_modules/broccoli-plugin/index.js:7:31)
    at new WaitForTrees (/Users/spenner/src/embroider-build/embroider/packages/core/src/wait-for-trees.js:30:9)
    at CompatApp.get tree (/Users/spenner/src/embroider-build/embroider/packages/core/src/build-stage.js:26:16)
    at CompatApp.<anonymous> (/Users/spenner/src/embroider-build/embroider/node_modules/typescript-memoize/dist/memoize-decorator.js:67:52)
    at new PackagerRunner (/Users/spenner/src/embroider-build/embroider/packages/core/src/to-broccoli-plugin.js:11:26)
    at Object.defaultPipeline [as compatBuild] (/Users/spenner/src/embroider-build/embroider/packages/compat/src/default-pipeline.js:28:12)
    at module.exports (/Users/spenner/l/pemberly-example-web_trunk/ember-cli-build.js:57:39)
    at Builder.readBuildFile (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/models/builder.js:52:14)
    at Builder.setupBroccoliBuilder (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/models/builder.js:66:22)
    at new Builder (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/models/builder.js:32:10)
    at BuildTask.run (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/tasks/build.js:15:19)
    at Promise.resolve.then (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/models/command.js:243:46)
    at tryCatcher (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:323:19)
    at invokeCallback (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:495:31)
    at /Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:559:14
    at flush (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:2402:5)
    at process._tickCallback (internal/process/next_tick.js:61:11)
-~- (end) -~-
  - errorType: Build Error
  - location:
    - column: [undefined]
    - file: [undefined]
    - line: [undefined]
    - treeDir: [undefined]
  - message: Cannot find module './@linkedin/artdeco-button.css' from '/private/tmp/embroider-workspace/node_modules/@linkedin/artdeco-button'
        at WaitForTrees (@embroider/compat/app)
-~- created here: -~-
    at new Plugin (/Users/spenner/src/embroider-build/embroider/node_modules/broccoli-plugin/index.js:7:31)
    at new WaitForTrees (/Users/spenner/src/embroider-build/embroider/packages/core/src/wait-for-trees.js:30:9)
    at CompatApp.get tree (/Users/spenner/src/embroider-build/embroider/packages/core/src/build-stage.js:26:16)
    at CompatApp.<anonymous> (/Users/spenner/src/embroider-build/embroider/node_modules/typescript-memoize/dist/memoize-decorator.js:67:52)
    at new PackagerRunner (/Users/spenner/src/embroider-build/embroider/packages/core/src/to-broccoli-plugin.js:11:26)
    at Object.defaultPipeline [as compatBuild] (/Users/spenner/src/embroider-build/embroider/packages/compat/src/default-pipeline.js:28:12)
    at module.exports (/Users/spenner/l/pemberly-example-web_trunk/ember-cli-build.js:57:39)
    at Builder.readBuildFile (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/models/builder.js:52:14)
    at Builder.setupBroccoliBuilder (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/models/builder.js:66:22)
    at new Builder (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/models/builder.js:32:10)
    at BuildTask.run (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/tasks/build.js:15:19)
    at Promise.resolve.then (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/lib/models/command.js:243:46)
    at tryCatcher (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:323:19)
    at invokeCallback (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:495:31)
    at /Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:559:14
    at flush (/Users/spenner/l/pemberly-example-web_trunk/node_modules/ember-cli/node_modules/rsvp/dist/rsvp.js:2402:5)
    at process._tickCallback (internal/process/next_tick.js:61:11)
-~- (end) -~-
  - name: BuildError
  - nodeAnnotation: @embroider/compat/app
  - nodeName: WaitForTrees
  - originalErrorMessage: Cannot find module './@linkedin/artdeco-button.css' from '/private/tmp/embroider-workspace/node_modules/@linkedin/artdeco-button'
  - stack: Error: Cannot find module './@linkedin/artdeco-button.css' from '/private/tmp/embroider-workspace/node_modules/@linkedin/artdeco-button'
    at Function.module.exports [as sync] (/Users/spenner/src/embroider-build/embroider/node_modules/resolve/lib/sync.js:58:15)
    at AppBuilder.impliedAddonAssets (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:109:51)
    at AppBuilder.impliedAssets (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:84:27)
    at AppBuilder.insertEmberApp (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:150:35)
    at AppBuilder.prepareAsset (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:196:18)
    at AppBuilder.prepareAssets (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:206:18)
    at AppBuilder.updateAssets (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:270:27)
    at AppBuilder.build (/Users/spenner/src/embroider-build/embroider/packages/core/src/app.js:324:38)
    at WaitForTrees.wait_for_trees_1.default [as buildHook] (/Users/spenner/src/embroider-build/embroider/packages/core/src/build-stage.js:37:31)
    at process._tickCallback (internal/process/next_tick.js:68:7)

=================================================================================

precompile is not a function

After #19 was fixed, I now get the following error:

ERROR in ./tests/integration/components/my-awesome-component-test.js
Module build failed (from /Users/josemarluedke/code/tmp/my-embroider-test/node_modules/thread-loader/dist/cjs.js):
Thread Loader (Worker 0)
/private/tmp/embroider-workspace/tests/integration/components/my-awesome-component-test.js: precompile is not a function

    at compileTemplate (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-plugin-htmlbars-inline-precompile/index.js:11:61)
    at PluginPass.TaggedTemplateExpression (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-plugin-htmlbars-inline-precompile/index.js:53:38)
    at newFn (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-traverse/lib/visitors.js:276:21)
    at NodePath._call (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-traverse/lib/path/context.js:76:18)
    at NodePath.call (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-traverse/lib/path/context.js:48:17)
    at NodePath.visit (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-traverse/lib/path/context.js:105:12)
    at TraversalContext.visitQueue (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-traverse/lib/context.js:150:16)
    at TraversalContext.visitMultiple (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-traverse/lib/context.js:103:17)
    at TraversalContext.visit (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-traverse/lib/context.js:190:19)
    at Function.traverse.node (/Users/josemarluedke/code/tmp/my-embroider-test/node_modules/babel-traverse/lib/index.js:114:17)
 @ ./assets/test.js 187:0-71
Build Error (PackagerRunner)

webpack returned errors to @embroider/webpack

A reproduction can be found here at SHA 12253f7.

Let me know if this report doesn't help.

`@ember/component` import

The spec says:

@ember/component really comes from ember-cli-shims/vendor/ember-cli-shims/app-shims, which uses globals to find the real code in ember-source.

but that's actually not quite true. The @ember/component import at the moment is transpiled away by ember-cli-babel and convert into an Ember global access. ember-cli-shims has been removed from the default blueprints.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.