Skip to content

blueprint still references ember global, which doesn't exist in v4 #1503

Closed
@NullVoxPopuli

Description

@NullVoxPopuli

This is in the same app as this issue:

Please paste the output of ember -v here

❯ ember -v
ember-cli: 4.3.0
node: 16.13.1
os: linux x64

Please paste the output of tsc -v here

❯ pnpm exec tsc -v
Version 4.6.4

Please paste the version of ember-cli-typescript and ember-cli-typescript-blueprints here

❯ cat package.json | grep typescript
    "ember-cli-typescript": "^5.1.0",
    "ember-cli-typescript-blueprints": "^3.0.0",
    "typescript": "^4.6.4",

Please paste your tsconfig.json and tslint.json or eslint.json (if applicable) below

My tsconfig.json
{
  "compilerOptions": {
    "target": "ES2021",
    "module": "ES2020",
    "moduleResolution": "node",

    // Trying to check Ember apps and addons with `allowJs: true` is a recipe
    // for many unresolveable type errors, because with *considerable* extra
    // configuration it ends up including many files which are *not* valid and
    // cannot be: they *appear* to be resolve-able to TS, but are in fact not in
    // valid Node-resolveable locations and may not have TS-ready types. This
    // will likely improve over time
    "allowJs": false,

    // --- TS for SemVer Types compatibility
    // Strictness settings -- you should *not* change these: Ember code is not
    // guaranteed to type check with these set to looser values.
    "strict": true,
    "noUncheckedIndexedAccess": true,

    // Interop: these are viral and will require anyone downstream of your
    // package to *also* set them to true. If you *must* enable them to consume
    // an upstream package, you should document that for downstream consumers to
    // be aware of.
    //
    // These *are* safe for apps to enable, since they do not *have* downstream
    // consumers; but leaving them off is still preferred when possible, since
    // it makes it easier to switch between apps and addons and have the same
    // rules for what can be imported and how.
    "allowSyntheticDefaultImports": false,
    "esModuleInterop": false,

    // --- Lint-style rules

    // TypeScript also supplies some lint-style checks; nearly all of them are
    // better handled by ESLint with the `@typescript-eslint`. This one is more
    // like a safety check, though, so we leave it on.
    "noPropertyAccessFromIndexSignature": true,

    // --- Compilation/integration settings
    // Setting `noEmitOnError` here allows ember-cli-typescript to catch errors
    // and inject them into Ember CLI's build error reporting, which provides
    // nice feedback for when
    "noEmitOnError": true,

    // We use Babel for emitting runtime code, because it's very important that
    // we always and only use the same transpiler for non-stable features, in
    // particular decorators. If you were to change this to `true`, it could
    // lead to accidentally generating code with `tsc` instead of Babel, and
    // could thereby result in broken code at runtime.
    "noEmit": true,

    // Ember makes heavy use of decorators; TS does not support them at all
    // without this flag.
    "experimentalDecorators": true,

    // Support generation of source maps. Note: you must *also* enable source
    // maps in your `ember-cli-babel` config and/or `babel.config.js`.
    "declaration": true,
    "declarationMap": true,
    "inlineSourceMap": true,
    "inlineSources": true,

    // The combination of `baseUrl` with `paths` allows Ember's classic package
    // layout, which is not resolveable with the Node resolution algorithm, to
    // work with TypeScript.
    "baseUrl": ".",
    "paths": {
      "repro-glint-gts-error-parse-node/tests/*": [
        "tests/*"
      ],
      "repro-glint-gts-error-parse-node/*": [
        "app/*"
      ],
      "*": [
        "types/*"
      ]
    }
  },
  "include": [
    "app/**/*",
    "tests/**/*",
    "types/**/*"
  ]
}

What are instructions we can follow to reproduce the issue?

ember new my-app
cd my-app
ember install ember-cli-typescript
ember s 
# => errors
Reproduction Case

I have this repo, which I was trying to repo an unrelated error:

See commits: https://github.com/NullVoxPopuli/repro-glint-gts-error-parse-node/commits/main

the error is present from the 3rd commit NullVoxPopuli/repro-glint-gts-error-parse-node@10fe083

all the way until the work around is implemented: NullVoxPopuli/repro-glint-gts-error-parse-node@5843cbc
(I just deleted the types/<app-name> folder)

What happened instead?

❯ pnpm start

> [email protected] start /home/nullvoxpopuli/Development/NullVoxPopuli/repro-glint-gts-error-parse-node
> ember serve

Building into /tmp/embroider/d85e90

types/repro-glint-gts-error-parse-node/index.d.ts:1:19 - error TS2307: Cannot find module 'ember' or its corresponding type declarations.

1 import Ember from 'ember';
                    ~~~~~~~

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions