Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update sample-rollup.config.js #1012

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion packages/addon-dev/sample-rollup.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
import babel from '@rollup/plugin-babel';
import { babel } from '@rollup/plugin-babel';

import { Addon } from '@embroider/addon-dev/rollup';

import packageJson from './package.json';
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, what makes this work? By default you can't import from .json files in Node...

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rollup configs go through their own weird preprocessing. That's also why they're written as ES modules despite predating Node's native ES module support.


const addon = new Addon({
srcDir: 'src',
destDir: 'dist',
Expand All @@ -11,6 +14,9 @@ export default {
// You can augment this if you need to.
output: addon.output(),

// This prevents peerDependencies from being included in your bundle
external: Object.keys(packageJson['peerDependencies']),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is great! We need to beef it up though, it should also include:

  • The list of Ember's pseudo packages (e.g. @ember/object and friends). We should get that list from @embroider/shared-internals and expose it on the Addon instance we are using here.
  • The list of dependencies (the actual resolution / bundling will be done by the final app packager; either ember-auto-import@2 in classic builds or @embroider/webpack in Embroider builds)


plugins: [
// These are the modules that users should be able to import from your
// addon. Anything not listed here may get optimized away.
Expand All @@ -27,6 +33,7 @@ export default {
babel({
plugins: ['@embroider/addon-dev/template-colocation-plugin'],
babelHelpers: 'bundled',
extensions: ['.js', '.ts'],
}),

// Follow the V2 Addon rules about dependencies. Your code can import from
Expand Down