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

Trouble using with Embroider app #979

Open
tsmalls93 opened this issue Sep 17, 2024 · 4 comments
Open

Trouble using with Embroider app #979

tsmalls93 opened this issue Sep 17, 2024 · 4 comments

Comments

@tsmalls93
Copy link

tsmalls93 commented Sep 17, 2024

I have a V2 addon that uses ember-simple-auth. When I try to use the addon in an Embroider app, it fails to start with the following error:

webpack 5.94.0 compiled with 1 error in 2406 ms
Build Error (PackagerRunner) in ../../../../node_modules/.pnpm/[email protected]_@[email protected]_@[email protected]_@[email protected]_@gl_zlshd7pwbijf4cnbfuif3z53ji/node_modules/ember-customer-auth/dist/routes/application.js

Module not found: Error: ember-customer-auth is trying to import from ember-cookies but that is not one of its explicit dependencies

I have ember-cookies installed as a dependency in my V2 addon, so I am not sure why this error is being thrown.
I am using pnpm link if that helps.

@BobrImperator
Copy link
Contributor

Could you share the package.json of your ember-customer-auth addon?

@tsmalls93
Copy link
Author

Sure. I tried putting ember-cookies in dependencies and peerDependencies. Both had the same result.

{
  "name": "ember-customer-auth",
  "version": "1.4.0",
  "description": "The default blueprint for Embroider v2 addons.",
  "keywords": [
    "ember-addon"
  ],
  "repository": "",
  "license": "MIT",
  "author": "",
  "exports": {
    ".": {
      "types": "./declarations/index.d.ts",
      "default": "./dist/index.js"
    },
    "./*": {
      "types": "./declarations/*.d.ts",
      "default": "./dist/*.js"
    },
    "./addon-main.js": "./addon-main.cjs"
  },
  "typesVersions": {
    "*": {
      "*": [
        "declarations/*"
      ]
    }
  },
  "files": [
    "addon-main.cjs",
    "declarations",
    "dist"
  ],
  "scripts": {
    "build": "concurrently 'pnpm:build:*'",
    "build:js": "rollup --config",
    "build:types": "glint --declaration",
    "lint": "concurrently 'pnpm:lint:*(!fix)' --names 'lint:'",
    "lint:fix": "concurrently 'pnpm:lint:*:fix' --names 'fix:'",
    "lint:hbs": "ember-template-lint . --no-error-on-unmatched-pattern",
    "lint:hbs:fix": "ember-template-lint . --fix --no-error-on-unmatched-pattern",
    "lint:js": "eslint . --cache",
    "lint:js:fix": "eslint . --fix",
    "lint:types": "glint",
    "prepack": "concurrently 'pnpm:build:*'",
    "start": "concurrently 'pnpm:start:*'",
    "start:js": "rollup --config --watch --no-watch.clearScreen",
    "start:types": "glint --declaration --watch",
    "test": "echo 'A v2 addon does not have tests, run tests in test-app'"
  },
  "dependencies": {
    "@embroider/addon-shim": "^1.8.7",
    "decorator-transforms": "^2.0.0"
  },
  "devDependencies": {
    "@babel/core": "^7.24.4",
    "@babel/plugin-transform-typescript": "^7.24.4",
    "@babel/runtime": "^7.24.4",
    "@embroider/addon-dev": "^4.3.1",
    "@glimmer/tracking": "^1.1.2",
    "@glint/core": "^1.4.0",
    "@glint/environment-ember-loose": "^1.4.0",
    "@glint/environment-ember-template-imports": "^1.4.0",
    "@glint/template": "^1.4.0",
    "@rollup/plugin-babel": "^6.0.4",
    "@tsconfig/ember": "^3.0.6",
    "@types/ember": "^4.0.10",
    "@types/ember-data": "^4.4.16",
    "@types/ember-data__model": "^4.0.5",
    "@types/ember-data__store": "^4.0.7",
    "@types/ember__application": "^4.0.10",
    "@types/ember__array": "^4.0.9",
    "@types/ember__component": "^4.0.21",
    "@types/ember__controller": "^4.0.11",
    "@types/ember__debug": "^4.0.7",
    "@types/ember__destroyable": "^4.0.4",
    "@types/ember__engine": "^4.0.10",
    "@types/ember__error": "^4.0.5",
    "@types/ember__helper": "^4.0.5",
    "@types/ember__modifier": "^4.0.8",
    "@types/ember__object": "^4.0.11",
    "@types/ember__owner": "^4.0.8",
    "@types/ember__polyfills": "^4.0.5",
    "@types/ember__routing": "^4.0.19",
    "@types/ember__runloop": "^4.0.8",
    "@types/ember__service": "^4.0.8",
    "@types/ember__string": "^3.16.3",
    "@types/ember__template": "^4.0.5",
    "@types/ember__test": "^4.0.5",
    "@types/ember__utils": "^4.0.6",
    "@typescript-eslint/eslint-plugin": "^7.7.1",
    "@typescript-eslint/parser": "^7.7.1",
    "babel-plugin-ember-template-compilation": "^2.2.5",
    "concurrently": "^8.2.2",
    "ember-concurrency": "^4.0.2",
    "ember-inflector": "^5.0.1",
    "ember-template-lint": "^6.0.0",
    "eslint": "^8.56.0",
    "eslint-config-prettier": "^9.1.0",
    "eslint-plugin-ember": "^12.0.2",
    "eslint-plugin-import": "^2.29.1",
    "eslint-plugin-n": "^17.3.1",
    "eslint-plugin-prettier": "^5.1.3",
    "prettier": "^3.2.5",
    "prettier-plugin-ember-template-tag": "^2.0.2",
    "rollup": "^4.16.4",
    "rollup-plugin-copy": "^3.5.0",
    "typescript": "^5.4.5"
  },
  "peerDependencies": {
    "@ember-data/model": "^3.12.0 || ^4.0.0 || ^5.0.0",
    "@ember-data/store": "^3.12.0 || ^4.0.0 || ^5.0.0",
    "ember-concurrency": "^4.0.2",
    "ember-cookies": "^1.1.2",
    "ember-simple-auth": "^6.1.0",
    "ember-simple-auth-oidc": "^6.0.1",
    "webpack": "^5.0.0"
  },
  "publishConfig": {
    "registry": "https://nexus.kub.org/repository/npm-hosted/"
  },
  "ember": {
    "edition": "octane"
  },
  "ember-addon": {
    "version": 2,
    "type": "addon",
    "main": "addon-main.cjs",
    "app-js": {
      "./adapters/authenticated.js": "./dist/_app_/adapters/authenticated.js",
      "./authenticators/oidc.js": "./dist/_app_/authenticators/oidc.js",
      "./models/application-settings.js": "./dist/_app_/models/application-settings.js",
      "./models/user.js": "./dist/_app_/models/user.js",
      "./routes/application.js": "./dist/_app_/routes/application.js",
      "./routes/oidc-authentication.js": "./dist/_app_/routes/oidc-authentication.js",
      "./services/session.js": "./dist/_app_/services/session.js"
    }
  }
}

@BobrImperator
Copy link
Contributor

If that's the current setup, then you might need to make sure that ember-cookies is also installed in the main app.
We'd need a reproduction for this, the package.json looks fine.

Interestingly ember-simple-auth does work which has a very similar setup, unless it's not actually imported and you only use the service?

@tsmalls93
Copy link
Author

tsmalls93 commented Sep 17, 2024

Yeah. it is a weird issue. I have determined it only happens when I use pnpm link to symlink the addon locally. Once I publish the addon, everything works fine. It also works for the test-app within the addon monorepo.

For ember-simple-auth I had to leave it in peerDependencies. When I put it in dependencies I would get the "Some V1 ember addons are resolving as incorrect peer dependencies." error because of a conflict with @ember/test-helpers. I do not import anything directly from ember-simple-auth, but I am overriding a lot in ember-simple-auth-oidc which in turn overrides ember-simple-auth.

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

2 participants