quasarframework / quasar

Quasar Framework - Build high-performance VueJS user interfaces in record time
https://quasar.dev
MIT License
25.29k stars 3.43k forks source link

bex build broken due to 'Could not resolve "quasar/src/utils/uid"' #17124

Closed evandor closed 3 weeks ago

evandor commented 3 weeks ago

What happened?

create a new quasar project with default settings (yarn create quasar, all recommended choices, typescript, no plugins) add bex mode optionally "rm -rf node_modules dist yarn.lock" yarn install running "quasar dev -m bex" results in error (see below)

What did you expect to happen?

successful build, running application, like it was working "yesterday" (don't know exactly when this error was introduced)

Reproduction URL

https://github.com/evandor/quasar-project

How to reproduce?

create a new quasar project with default settings (yarn create quasar, all recommended choices, typescript, no plugins) add bex mode optionally "rm -rf node_modules dist yarn.lock" yarn install running "quasar dev -m bex"

Flavour

Quasar CLI with Vite (@quasar/cli | @quasar/app-vite)

Areas

BEX Mode

Platforms/Browsers

Firefox, Chrome, Safari, Microsoft Edge, iOS, Android, Electron, Other

Quasar info output

quasar-project % quasar info

Operating System - Darwin(23.4.0) - darwin/arm64
NodeJs - 18.19.1

Global packages
  NPM - 10.2.4
  yarn - 1.22.19
  @quasar/cli - 2.4.0
  @quasar/icongenie - 4.0.0
  cordova - 12.0.0 (cordova-lib@12.0.1)

Important local packages
  quasar - 2.15.3 -- Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time
  @quasar/app-vite - 1.8.1 -- Quasar Framework App CLI with Vite
  @quasar/extras - 1.16.11 -- Quasar Framework fonts, icons and animations
  eslint-plugin-quasar - Not installed
  vue - 3.4.23 -- The progressive JavaScript framework for building modern web UI.
  vue-router - 4.3.2
  pinia - Not installed
  vuex - Not installed
  vite - 2.9.18 -- Native-ESM powered web dev build tool
  eslint - Not installed
  electron - Not installed
  electron-packager - Not installed
  electron-builder - Not installed
  register-service-worker - 1.7.2 -- Script for registering service worker, with hooks
  @capacitor/core - Not installed
  @capacitor/cli - Not installed
  @capacitor/android - Not installed
  @capacitor/ios - Not installed

Quasar App Extensions
  *None installed*

Relevant log output

App •  WAIT  • Compiling of Background Script with Esbuild in progress...
✘ [ERROR] Could not resolve "quasar/src/utils/uid"

    .quasar/bex/bridge.js:8:16:
      8 │ import uid from 'quasar/src/utils/uid'
        ╵                 ~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "quasar/src/utils/uid" as external to exclude it from the bundle, which will
  remove this error.

/Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:1621
  let error = new Error(`${text}${summary}`);
              ^

Error: Build failed with 1 error:
.quasar/bex/bridge.js:8:16: ERROR: Could not resolve "quasar/src/utils/uid"
    at failureErrorWithLog (/Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:1621:15)
    at /Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:1263:28
    at runOnEndCallbacks (/Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:1176:65)
    at buildResponseToResult (/Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:1261:7)
    at /Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:1374:14
    at /Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:675:9
    at handleIncomingPacket (/Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:772:9)
    at Socket.readFromStdout (/Users/carstengraef/projects/quasar-project/node_modules/esbuild/lib/main.js:641:7)
    at Socket.emit (node:events:517:28)
    at addChunk (node:internal/streams/readable:368:12) {
  errors: [
    {
      detail: undefined,
      id: '',
      location: {
        column: 16,
        file: '.quasar/bex/bridge.js',
        length: 22,
        line: 8,
        lineText: "import uid from 'quasar/src/utils/uid'",
        namespace: '',
        suggestion: ''
      },
      notes: [
        {
          location: null,
          text: 'You can mark the path "quasar/src/utils/uid" as external to exclude it from the bundle, which will remove this error.'
        }
      ],
      pluginName: '',
      text: 'Could not resolve "quasar/src/utils/uid"'
    }
  ],
  warnings: []
}

Node.js v18.19.1

Additional context

all over a sudden, all my projects stopped building. This only occurs if you remove the node_modules folder and rerun "yarn install". Running the dev command after that results in the described error.

Btw: Thanks so much for this project!!

KristijanS99 commented 3 weeks ago

Same here! I started a fresh project in order to port our extension to Manifest V3 and I cannot run the dev/build process for it... tried with the v1 stable and v2 beta. Both of them have the same issue. In my case it doesn't matter if I remove node_modules or not, it does not work anyhow (probably because I am running from scratch so it always pulls the latest changes).

`kristijanstefanoski@Kristijans-MBP bex-project % npx quasar dev -m bex

 .d88888b.
d88P" "Y88b
888     888
888     888 888  888  8888b.  .d8888b   8888b.  888d888
888     888 888  888     "88b 88K          "88b 888P"
888 Y8b 888 888  888 .d888888 "Y8888b. .d888888 888
Y88b.Y8b88P Y88b 888 888  888      X88 888  888 888
 "Y888888"   "Y88888 "Y888888  88888P' "Y888888 888
       Y8b

 App •  WAIT  • Compiling of Background Script with Esbuild in progress...
✘ [ERROR] Could not resolve "quasar/src/utils/uid"

    .quasar/bex/bridge.js:8:16:
      8 │ import uid from 'quasar/src/utils/uid'
        ╵                 ~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "quasar/src/utils/uid" as external to exclude it from the bundle, which will
  remove this error.

/Users/kristijanstefanoski/Desktop/workspace/bex-project/node_modules/esbuild/lib/main.js:1621
  let error = new Error(`${text}${summary}`);
              ^

Error: Build failed with 1 error:
.quasar/bex/bridge.js:8:16: ERROR: Could not resolve "quasar/src/utils/uid"
    at failureErrorWithLog (/Users/kristijanstefanoski/Desktop/workspace/bex-projec/node_modules/esbuild/lib/main.js:1621:15)
    at /Users/kristijanstefanoski/Desktop/workspace/bex-projec/node_modules/esbuild/lib/main.js:1263:28
    at runOnEndCallbacks (/Users/kristijanstefanoski/Desktop/workspace/bex-projec2/node_modules/esbuild/lib/main.js:1176:65)
    at buildResponseToResult (/Users/kristijanstefanoski/Desktop/workspace/bex-projec/node_modules/esbuild/lib/main.js:1261:7)
    at /Users/kristijanstefanoski/Desktop/workspace/bex-projec/node_modules/esbuild/lib/main.js:1374:14
    at /Users/kristijanstefanoski/Desktop/workspace/bex-projec/node_modules/esbuild/lib/main.js:675:9
    at handleIncomingPacket (/Users/kristijanstefanoski/Desktop/workspace/bex-projec/node_modules/esbuild/lib/main.js:772:9)
    at Socket.readFromStdout (/Users/kristijanstefanoski/Desktop/workspace/bex-projec/node_modules/esbuild/lib/main.js:641:7)
    at Socket.emit (node:events:518:28)
    at addChunk (node:internal/streams/readable:559:12) {
  errors: [
    {
      detail: undefined,
      id: '',
      location: {
        column: 16,
        file: '.quasar/bex/bridge.js',
        length: 22,
        line: 8,
        lineText: "import uid from 'quasar/src/utils/uid'",
        namespace: '',
        suggestion: ''
      },
      notes: [
        {
          location: null,
          text: 'You can mark the path "quasar/src/utils/uid" as external to exclude it from the bundle, which will remove this error.'
        }
      ],
      pluginName: '',
      text: 'Could not resolve "quasar/src/utils/uid"'
    }
  ],
  warnings: []
}

Node.js v20.11.1`
IGZmanuelMartinVivaldi commented 3 weeks ago

Same problem in v1 after updating dependencies

d88888b.
d88P" "Y88b
888     888
888     888 888  888  8888b.  .d8888b   8888b.  888d888
888     888 888  888     "88b 88K          "88b 888P"
888 Y8b 888 888  888 .d888888 "Y8888b. .d888888 888
Y88b.Y8b88P Y88b 888 888  888      X88 888  888 888
 "Y888888"   "Y88888 "Y888888  88888P' "Y888888 888
       Y8b

 App •  WAIT  • Compiling of Background Script with Esbuild in progress...
X [ERROR] Could not resolve "quasar/src/utils/uid"

    .quasar/bex/bridge.js:8:16:
      8 │ import uid from 'quasar/src/utils/uid'
        ╵                 ~~~~~~~~~~~~~~~~~~~~~~

  You can mark the path "quasar/src/utils/uid" as external to exclude it from the bundle, which will
  remove this error.

C:\IGZ\Proyectos\Personal\Amazon_wishlist\AZ-WishList\node_modules\esbuild\lib\main.js:1621
  let error = new Error(`${text}${summary}`);
Operating System - Windows_NT(10.0.22631) - win32/x64
NodeJs - 20.12.2

Global packages
  NPM - 10.5.2
  yarn - 1.22.19
  @quasar/cli - 2.3.0
  @quasar/icongenie - Not installed
  cordova - Not installed

Important local packages
  quasar - 2.15.3 -- Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time
  @quasar/app-vite - 1.8.1 -- Quasar Framework App CLI with Vite
  @quasar/extras - 1.16.11 -- Quasar Framework fonts, icons and animations
  eslint-plugin-quasar - Not installed
  vue - 3.4.23 -- The progressive JavaScript framework for building modern web UI.
  vue-router - 4.3.2
  pinia - Not installed
  vuex - 4.1.0 -- state management for Vue.js
  vite - 2.9.18 -- Native-ESM powered web dev build tool
  eslint - 8.57.0 -- An AST-based pattern checker for JavaScript.
  electron - Not installed
  electron-packager - Not installed
  electron-builder - Not installed
  register-service-worker - 1.7.2 -- Script for registering service worker, with hooks
  @capacitor/core - Not installed
  @capacitor/cli - Not installed
  @capacitor/android - Not installed
  @capacitor/ios - Not installed

Quasar App Extensions
  *None installed*
IGZmanuelMartinVivaldi commented 3 weeks ago

After downgrading quasar it worked again: yarn add quasar@2.15.2

I downgraded others before and didn´t work but maybe are required too:

yarn add vite@2.9.17  
yarn add @quasar/app-vite@1.8.0
evandor commented 3 weeks ago

I can confirm that my projects compile again when downgrading quasar back to 2.15.2

rstoenescu commented 3 weeks ago

New releases of q/app-vite & q/app-webpack are available which fix this issue.

evandor commented 3 weeks ago

Confirming that the fix is working for me; for completeness here's my quasar info output:

`Operating System - Darwin(23.4.0) - darwin/arm64 NodeJs - 18.19.1

Global packages NPM - 10.2.4 yarn - 1.22.19 @quasar/cli - 2.4.0 @quasar/icongenie - 4.0.0 cordova - 12.0.0 (cordova-lib@12.0.1)

Important local packages quasar - 2.15.3 -- Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time @quasar/app-vite - 1.8.2 -- Quasar Framework App CLI with Vite @quasar/extras - 1.16.11 -- Quasar Framework fonts, icons and animations eslint-plugin-quasar - Not installed vue - 3.4.23 -- The progressive JavaScript framework for building modern web UI. vue-router - 4.3.2 pinia - 2.1.7 -- Intuitive, type safe and flexible Store for Vue vuex - Not installed vite - 2.9.18 -- Native-ESM powered web dev build tool eslint - Not installed electron - 29.3.1 -- Build cross platform desktop apps with JavaScript, HTML, and CSS electron-packager - 17.1.2 -- Customize and package your Electron app with OS-specific bundles (.app, .exe, etc.) via JS or CLI electron-builder - Not installed register-service-worker - 1.7.2 -- Script for registering service worker, with hooks @capacitor/core - 5.6.0 -- Capacitor: Cross-platform apps with JavaScript and the web @capacitor/cli - 5.6.0 -- Capacitor: Cross-platform apps with JavaScript and the web @capacitor/android - Not installed @capacitor/ios - 5.6.0 -- Capacitor: Cross-platform apps with JavaScript and the web

Quasar App Extensions @quasar/quasar-app-extension-testing-unit-vitest - 1.0.0 -- A Quasar App Extension for running tests with Vitest `

roberttolton commented 5 days ago

The fix in the updated version of Quasar doesn't seem to resolve it:

"@quasar/app-vite": "^1.9.2"
"quasar": "^2.16.1"
 App •  WAIT  • Compiling of Background Script with Esbuild in progress...
✘ [ERROR] Could not resolve "quasar/src/utils/uid/uid"

    .quasar/bex/bridge.js:8:16:
      8 │ import uid from 'quasar/src/utils/uid/uid'
        ╵                 ~~~~~~~~~~~~~~~~~~~~~~~~~~

  The module "./src/utils/uid/uid" was not found on the file system:

    node_modules/quasar/package.json:27:11:
      27 │     "./*": "./*"
         ╵            ~~~~~

Have deleted my node_modules folder and package-lock.json and run npm install but no luck.

rstoenescu commented 5 days ago

@roberttolton Will work with q/app v1.9.3 (pushed a fix just now). Releasing later today.