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

v2 fails build because config.targets given to Webpack is incorrect type #404

Closed
runspired opened this issue May 19, 2021 · 9 comments
Closed

Comments

@runspired
Copy link

Build Error (WebpackBundler)

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function

This is being set to a string that is none of these values here: https://github.com/ef4/ember-auto-import/blob/dfd511c104307918500b1d861e87c6a63853d458/packages/ember-auto-import/ts/webpack.ts#L153-L156

            // this controls webpack's own runtime code generation. You still need
            // preset-env to preprocess the libraries themselves (which is already
            // part of this.opts.babelConfig)
            target: `browserslist:${this.opts.browserslist}`,
@rwjblue
Copy link
Collaborator

rwjblue commented May 19, 2021

How can we reproduce?

@runspired
Copy link
Author

Can't imagine this works in any project... but you can definitely see it by adding it to ember-data (or bumping to it in the chore/bump-ember branch)

@runspired
Copy link
Author

@rwjblue confirmed broken for all projects, minimal reproduction is to create a new ember app, install 2.0, and run ember build.

@ef4
Copy link
Collaborator

ef4 commented May 20, 2021

See the second line of the 2.0 upgrade guide:

apps must add webpack to their own dependencies (yarn add --dev webpack@5 or npm install --save-dev webpack@5)

@ef4 ef4 closed this as completed May 20, 2021
@ef4
Copy link
Collaborator

ef4 commented May 20, 2021

We can add a better error message though. @embroider/webpack has the same requirement now and an explicit check was added to make it less confusing if people don't have the right webpack version.

@runspired
Copy link
Author

I can confirm that 2.0 works for me when also adding webpack >= 5. What made this confusing (or else I might have gone looking for that v2 suggestion in the upgrade guide) was that other addons (ember-qunit, ember-cli-fastboot-testing) which also use ember-auto-import v1 brought webpack 4, which resulted in the error above instead of an error for missing webpack (or wrong webpack version).

@adong
Copy link

adong commented May 20, 2021

ember install ember-auto-import@2
npm install --save-dev webpack@5

Together, ember s worked for me.

@lifeart
Copy link

lifeart commented Jun 8, 2021

Just faced this issue with "ember-auto-import": "^2.0.1",

Build Error (WebpackBundler)

Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function


Stack Trace and Error Report: /var/folders/5s/1y9hqll10z37zpn907glnh0c0000gn/T/error.dump.bdbffadffe2a1ea7609dd0f5a1f737e2.log
=================================================================================

ENV Summary:

  TIME: Tue Jun 08 2021 21:56:26 GMT+0300 (Москва, стандартное время)
  TITLE: ember
  ARGV:
  - /Users/aleksandr_kanunnikov/.volta/tools/image/node/14.16.0/bin/node
  - /Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/.bin/ember
  - serve
  EXEC_PATH: /Users/aleksandr_kanunnikov/.volta/tools/image/node/14.16.0/bin/node
  TMPDIR: /var/folders/5s/1y9hqll10z37zpn907glnh0c0000gn/T
  SHELL: /bin/zsh
  PATH:
  - /Users/aleksandr_kanunnikov/.volta/tools/image/node/14.16.0/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin
  - /Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/.bin
  - /Users/aleksandr_kanunnikov/.volta/tools/image/yarn/1.22.10/bin
  - /Users/aleksandr_kanunnikov/.volta/tools/image/node/14.16.0/bin
  - /Users/aleksandr_kanunnikov/.volta/bin
  - /usr/local/bin
  - /usr/bin
  - /bin
  - /usr/sbin
  - /sbin
  - /Library/Apple/usr/bin
  - /Users/aleksandr_kanunnikov/.volta/bin
  - /Users/aleksandr_kanunnikov/.cargo/bin
  - /Applications/Visual Studio Code.app/Contents/Resources/app/bin
  - /Applications/Visual Studio Code.app/Contents/Resources/app/bin
  PLATFORM: darwin x64
  FREEMEM: 844664832
  TOTALMEM: 34359738368
  UPTIME: 367177
  LOADAVG: 5.73974609375,6.49462890625,4.81640625
  CPUS:
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  - Intel(R) Core(TM) i9-9980HK CPU @ 2.40GHz - 2400
  ENDIANNESS: LE
  VERSIONS:
  - ares: 1.16.1
  - brotli: 1.0.9
  - cldr: 37.0
  - icu: 67.1
  - llhttp: 2.1.3
  - modules: 83
  - napi: 7
  - nghttp2: 1.41.0
  - node: 14.16.0
  - openssl: 1.1.1j
  - tz: 2020a
  - unicode: 13.0
  - uv: 1.40.0
  - v8: 8.4.371.19-node.18
  - zlib: 1.2.11

ERROR Summary:

  - broccoliBuilderErrorStack: WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function
    at Object.webpack (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/webpack/lib/webpack.js:31:9)
    at WebpackBundler.setup (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:194:43)
    at WebpackBundler.get stagingDir [as stagingDir] (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:123:21)
    at WebpackBundler.writeEntryFile (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:322:45)
    at WebpackBundler.<anonymous> (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:272:22)
    at Generator.next (<anonymous>)
    at fulfilled (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:11:58)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
  - code: [undefined]
  - codeFrame: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function
  - errorMessage: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function
        at WebpackBundler (ember-auto-import-webpack)
-~- created here: -~-
    at new Plugin (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/node_modules/broccoli-plugin/dist/index.js:47:36)
    at new WebpackBundler (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:106:9)
    at AutoImport.makeBundler (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/auto-import.js:94:16)
    at AutoImport.addTo (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/auto-import.js:119:51)
    at Class.postprocessTree (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/index.js:50:55)
    at /Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-cli/lib/utilities/addon-process-tree.js:6:25
    at Array.reduce (<anonymous>)
    at addonProcessTree (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-cli/lib/utilities/addon-process-tree.js:4:32)
    at EmberAddon.addonPostprocessTree (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-cli/lib/broccoli/ember-app.js:843:12)
    at EmberAddon.toTree (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-cli/lib/broccoli/ember-app.js:1666:17)
-~- (end) -~-
  - errorType: Build Error
  - location:
    - column: [undefined]
    - file: [undefined]
    - line: [undefined]
    - treeDir: [undefined]
  - message: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function
        at WebpackBundler (ember-auto-import-webpack)
-~- created here: -~-
    at new Plugin (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/node_modules/broccoli-plugin/dist/index.js:47:36)
    at new WebpackBundler (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:106:9)
    at AutoImport.makeBundler (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/auto-import.js:94:16)
    at AutoImport.addTo (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/auto-import.js:119:51)
    at Class.postprocessTree (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/index.js:50:55)
    at /Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-cli/lib/utilities/addon-process-tree.js:6:25
    at Array.reduce (<anonymous>)
    at addonProcessTree (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-cli/lib/utilities/addon-process-tree.js:4:32)
    at EmberAddon.addonPostprocessTree (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-cli/lib/broccoli/ember-app.js:843:12)
    at EmberAddon.toTree (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-cli/lib/broccoli/ember-app.js:1666:17)
-~- (end) -~-
  - name: Error
  - nodeAnnotation: ember-auto-import-webpack
  - nodeName: WebpackBundler
  - originalErrorMessage: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function
  - stack: WebpackOptionsValidationError: Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration.target should be one of these:
   "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload" | function
   -> Environment to build for
   Details:
    * configuration.target should be one of these:
      "web" | "webworker" | "node" | "async-node" | "node-webkit" | "electron-main" | "electron-renderer" | "electron-preload"
    * configuration.target should be an instance of function
    at Object.webpack (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/webpack/lib/webpack.js:31:9)
    at WebpackBundler.setup (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:194:43)
    at WebpackBundler.get stagingDir [as stagingDir] (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:123:21)
    at WebpackBundler.writeEntryFile (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:322:45)
    at WebpackBundler.<anonymous> (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:272:22)
    at Generator.next (<anonymous>)
    at fulfilled (/Users/aleksandr_kanunnikov/Documents/repos/ember-click-outside-modifier/node_modules/ember-auto-import/js/webpack.js:11:58)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

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

@ef4
Copy link
Collaborator

ef4 commented Jun 15, 2021

#414 should make this problem more obvious.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants