Skip to content

TypeScript import warnings when building (causes "exports is not defined") #3145

Closed
@tommitytom

Description

@tommitytom

Version

3.2.0

Environment info

  System:
    OS: Windows 10
    CPU: (8) x64 Intel(R) Core(TM) i7-4770K CPU @ 3.50GHz
  Binaries:
    Node: Not Found
    Yarn: Not Found
    npm: 6.1.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: 42.17134.1.0
  npmPackages:
    @vue/babel-preset-app:  3.2.0
    @vue/cli-overlay:  3.2.0
    @vue/cli-plugin-babel: ^3.2.0 => 3.2.0
    @vue/cli-plugin-typescript: ^3.2.0 => 3.2.0
    @vue/cli-service: ^3.2.0 => 3.2.0
    @vue/cli-shared-utils:  3.2.0
    @vue/component-compiler-utils:  2.3.1
    @vue/preload-webpack-plugin:  1.1.0
    @vue/web-component-wrapper:  1.2.0
    babel-helper-vue-jsx-merge-props:  2.0.3
    babel-plugin-transform-vue-jsx:  4.0.1
    vue: ^2.5.21 => 2.5.21
    vue-color: ^2.7.0 => 2.7.0
    vue-hot-reload-api:  2.3.1
    vue-loader:  15.4.2
    vue-resize: ^0.4.4 => 0.4.4
    vue-style-loader:  4.1.2
    vue-template-compiler: ^2.5.21 => 2.5.21
    vue-template-es2015-compiler:  1.6.0
  npmGlobalPackages:
    @vue/cli: Not Found

Steps to reproduce

I have tried time and time again to create a minimal reproduction of this issue and I have failed. It just seems to happen when a project gets beyond a certain size.

What is expected?

The project to build without warnings.

What is actually happening?

The project builds with warnings:

 WARNING  Compiled with 166 warnings                                                                                                                                                                                                1:38:48 PM

...

 warning  in ./src/common/GameLogic.ts

"export 'BUBBLE_WIDTH' was not found in './constants'

 warning  in ./src/common/GameLogic.ts

"export 'BUBBLE_WIDTH' was not found in './constants'

 warning  in ./src/common/GameLogic.ts

"export 'BUBBLE_WIDTH' was not found in './constants'

 warning  in ./src/game/controllers/GameController.ts

"export 'Background' was not found in '@/game/objects/Background'

 warning  in ./src/game/controllers/GameController.ts

"export 'BoardController' was not found in '@/game/controllers/BoardController'

 warning  in ./src/game/controllers/GameController.ts

"export 'BoardController' was not found in '@/game/controllers/BoardController'

 warning  in ./src/game/Board.ts

"export 'BoardDebugView' was not found in '@/game/objects/BoardDebugView'

 warning  in ./src/game/controllers/GameController.ts

"export 'BoardMoveAnimation' was not found in '@/game/animators/BoardMoveAnimation'

...

This bug has been plaguing me for many months now, and on multiple projects, but I have had a workaround - I have simply deleted the node_modules folder before each build and it seemed to fix the issue. This no longer seems to work.

Even though the project builds, the resulting output does not work, with the following error displayed in the browser console: exports is not defined. This has been consistent throughout the time I've had this issue.. on the occasions I did get it to compile, this error did not exist. This makes me think it may be a babel issue, but I really can't tell.

Some other notes:

  • npm run serve works fine.
  • The amount of warnings seems to randomly change every now and then, even if I don't change any code
  • I have tried using just TypeScript for this, with no Babel, which compiles just fine, but the resulting code has it's own set of issues once loaded in the browser.
  • I've tried rolling back both TypeScript and vue-cli versions to no avail.
  • Most of the other issues referencing anything like this seem to point to "emitDecoratorMetadata": true, but I don't have that in my config,

My tsconfig.json:

{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "strict": false,
    "importHelpers": true,
    "strictNullChecks": false,
    "moduleResolution": "node",
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "sourceMap": true,
    "baseUrl": ".",
    "types": [
      "webpack-env",
      "node"
    ],
    "paths": {
      "@/*": [
        "src/*",
      ]
    },
    "lib": [
      "esnext",
      "dom",
      "dom.iterable",
      "scripthost"
    ]
  },
  "include": [
    "src/**/*.ts",
    "src/**/*.vue",
    "tests/**/*.ts"
  ],
  "exclude": [
    "node_modules",
  ]
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    cannot reproduceWe cannot reproduce the problem with the given information. More env information needed.help wantedscope: typescript

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions