vue-cli icon indicating copy to clipboard operation
vue-cli copied to clipboard

vue-cli-service build hangs indefinitely

Open UglyHobbitFeet opened this issue 4 years ago • 20 comments

Version

4.5.6

Environment info

  System:
    OS: Linux 3.10 CentOS Linux 7 (Core)
    CPU: (2) x64 Intel(R) Xeon(R) CPU E5-2686 v4 @ 2.30GHz
  Binaries:
    Node: 12.18.4 - /bin/node
    Yarn: Not Found
    npm: 6.14.8 - /bin/npm
  Browsers:
    Chrome: 85.0.4183.102
    Firefox: 68.12.0esr
  npmGlobalPackages:
    @vue/cli: 4.5.6

Steps to reproduce

I have a Vue project in Node that I am trying to build via 'npm run build'. This works fine using the latest NPM (v6.14.8). Using the npm (v6.14.4) shipped with GraalVM causes it to hang indefinitely. FWIW my Vue project is built in Node and compiled using ES4x for Vert.x. I have tried the same with a prior GraalVM build (19.2.1) and get the same error. I am using v4.5.6 of the vue-cli-service package.

package.json snippet:

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint",
    "postinstall": "es4x install",
    "start": "es4x",
  },

Ex:

> which npm
/bin/npm
> npm -v
6.14.8
> npm run build
> vue-cli-service build
⠴  Building for production...
...Lots of output followed by...
 DONE  Build complete. The dist directory is ready to be deployed.
> /path/to/graalvm-ce-java8-20.2.0/bin/npm run build
> vue-cli-service build
⠴  Building for production...
<I never get any further output from this. It hangs on the last line shown above>

What is expected?

For the call to complete

What is actually happening?

The call does not complete

UglyHobbitFeet avatar Sep 23 '20 18:09 UglyHobbitFeet

hi,I have same problem ,did you solve the problem

Epic-Pony avatar Sep 24 '20 02:09 Epic-Pony

I'm sorry but I have zero experience with the GraalVM setup. Could you provide a docker image or something similar so that I can debug this issue?

haoqunjiang avatar Sep 24 '20 08:09 haoqunjiang

Unfortunately I don't have a docker image, and I am unable to send my specific project. Is there a way to debug during the vue-cli-build stage instead of only seeing the words 'Building for production...'?

As a side note, the easiest way to set up a vue project with graal would be:

  1. Download GraalVM-CE-Java 8 (20.2.0) from here ( https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-20.2.0) and extract it to a folder on your computer.
  2. Create a hello world project in Vue. In a command line type (vue create hello-world). I'm using vue-cli v4.5.6 and choosing Vue2 as the default option.
  3. Try to install/build it. cd hello-world; npm install; /path/to/graalvm-ce-java8-20.2.0/bin/npm run build;

I tried to create an example for you using the steps mentioned above (additionally modifying the package.json file to mirror the package.json file in my project) but there were no errors. So it's likely either something in my actual code or the size of the code (maybe causing vue-cli-build to time out?). That's where the debug statements would be super helpful.

On Thu, Sep 24, 2020 at 4:05 AM Haoqun Jiang [email protected] wrote:

I'm sorry but I have zero experience with the GraalVM setup. Could you provide a docker image or something similar so that I can debug this issue?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vuejs/vue-cli/issues/5898#issuecomment-698186211, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALBDS7WPIYW2HEZFCLXVK6DSHL4UPANCNFSM4RXLNZNQ .

UglyHobbitFeet avatar Sep 24 '20 15:09 UglyHobbitFeet

Also FWIW the (graal npm / vue-cli-build command) seems to pretty much pin my CPU at 100% and consume between 1-2GB of memory. Looking at the process shows 'Process status - sleeping. Process is waiting for something to happen'. It's been running for 30 minutes now. Using the non-graal npm usually has it complete in 30 seconds.

On Thu, Sep 24, 2020 at 11:57 AM Jeremy D [email protected] wrote:

Unfortunately I don't have a docker image, and I am unable to send my specific project. Is there a way to debug during the vue-cli-build stage instead of only seeing the words 'Building for production...'?

As a side note, the easiest way to set up a vue project with graal would be:

  1. Download GraalVM-CE-Java 8 (20.2.0) from here ( https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-20.2.0) and extract it to a folder on your computer.
  2. Create a hello world project in Vue. In a command line type (vue create hello-world). I'm using vue-cli v4.5.6 and choosing Vue2 as the default option.
  3. Try to install/build it. cd hello-world; npm install; /path/to/graalvm-ce-java8-20.2.0/bin/npm run build;

I tried to create an example for you using the steps mentioned above (additionally modifying the package.json file to mirror the package.json file in my project) but there were no errors. So it's likely either something in my actual code or the size of the code (maybe causing vue-cli-build to time out?). That's where the debug statements would be super helpful.

On Thu, Sep 24, 2020 at 4:05 AM Haoqun Jiang [email protected] wrote:

I'm sorry but I have zero experience with the GraalVM setup. Could you provide a docker image or something similar so that I can debug this issue?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vuejs/vue-cli/issues/5898#issuecomment-698186211, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALBDS7WPIYW2HEZFCLXVK6DSHL4UPANCNFSM4RXLNZNQ .

UglyHobbitFeet avatar Sep 24 '20 16:09 UglyHobbitFeet

It's hard to tell without vue-cli having debugging, but the GraalVM folks pointed at the vue-cli-service dependency of fibers as a possible cause and that that they do not support. https://github.com/oracle/graal/issues/2866#issuecomment-700900541

On Thu, Sep 24, 2020 at 12:08 PM Jeremy D [email protected] wrote:

Also FWIW the (graal npm / vue-cli-build command) seems to pretty much pin my CPU at 100% and consume between 1-2GB of memory. Looking at the process shows 'Process status - sleeping. Process is waiting for something to happen'. It's been running for 30 minutes now. Using the non-graal npm usually has it complete in 30 seconds.

On Thu, Sep 24, 2020 at 11:57 AM Jeremy D [email protected] wrote:

Unfortunately I don't have a docker image, and I am unable to send my specific project. Is there a way to debug during the vue-cli-build stage instead of only seeing the words 'Building for production...'?

As a side note, the easiest way to set up a vue project with graal would be:

  1. Download GraalVM-CE-Java 8 (20.2.0) from here ( https://github.com/graalvm/graalvm-ce-builds/releases/tag/vm-20.2.0) and extract it to a folder on your computer.
  2. Create a hello world project in Vue. In a command line type (vue create hello-world). I'm using vue-cli v4.5.6 and choosing Vue2 as the default option.
  3. Try to install/build it. cd hello-world; npm install; /path/to/graalvm-ce-java8-20.2.0/bin/npm run build;

I tried to create an example for you using the steps mentioned above (additionally modifying the package.json file to mirror the package.json file in my project) but there were no errors. So it's likely either something in my actual code or the size of the code (maybe causing vue-cli-build to time out?). That's where the debug statements would be super helpful.

On Thu, Sep 24, 2020 at 4:05 AM Haoqun Jiang [email protected] wrote:

I'm sorry but I have zero experience with the GraalVM setup. Could you provide a docker image or something similar so that I can debug this issue?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vuejs/vue-cli/issues/5898#issuecomment-698186211, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALBDS7WPIYW2HEZFCLXVK6DSHL4UPANCNFSM4RXLNZNQ .

UglyHobbitFeet avatar Sep 29 '20 18:09 UglyHobbitFeet

But fibers is a dev dependency that won't go into the user's project until they explicitly install it themselves.

haoqunjiang avatar Sep 30 '20 01:09 haoqunjiang

Unfortunately we kinda have to guess in the dark. Is there any way debugging can be added/output when vue-cli-service is running?

On Tue, Sep 29, 2020, 9:16 PM Haoqun Jiang [email protected] wrote:

But fibers is a dev dependency that won't go into the user's project until they explicitly install it themselves.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vuejs/vue-cli/issues/5898#issuecomment-701102381, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALBDS7WULNACCBCJLATN2RDSIKBHFANCNFSM4RXLNZNQ .

UglyHobbitFeet avatar Sep 30 '20 03:09 UglyHobbitFeet

According to the code, only two things happen after that line of output: resolving the webpack configuration and invoking webpack https://github.com/vuejs/vue-cli/blob/next/packages/@vue/cli-service/lib/commands/build/index.js#L118

So we need to find a way to debug webpack & the underlying loaders.

haoqunjiang avatar Sep 30 '20 06:09 haoqunjiang

Are you able to use these when calling and would they be helpful for this particular situation? https://webpack.js.org/contribute/debugging/ https://webpack.js.org/api/stats/

On Wed, Sep 30, 2020 at 2:03 AM Haoqun Jiang [email protected] wrote:

According to the code, only two things happen after that line of output: resolving the webpack configuration and invoking webpack https://github.com/vuejs/vue-cli/blob/next/packages/@vue/cli-service/lib/commands/build/index.js#L118

So we need to find a way to debug webpack & the underlying loaders.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/vuejs/vue-cli/issues/5898#issuecomment-701175580, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALBDS7SBYDILWL54AOB4J6LSILC2NANCNFSM4RXLNZNQ .

UglyHobbitFeet avatar Sep 30 '20 12:09 UglyHobbitFeet

@UglyHobbitFeet I am facing the same problem. I have two projects and for one it exists with success and for the other, it is waiting indefinitely. Do you find any solution for it?

rajinderAdvarra avatar Nov 08 '21 15:11 rajinderAdvarra

Hi,

I abandoned the use of Graal and it worked for me.

On Mon, Nov 8, 2021 at 10:01 AM Rajinder Singh @.***> wrote:

@UglyHobbitFeet https://github.com/UglyHobbitFeet I am facing the same problem. I have two projects and for one it exists with success and for the other, it is waiting indefinitely. Do you find any solution for it?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/vuejs/vue-cli/issues/5898#issuecomment-963245302, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALBDS7WG63V65F3OGS5NCULUK7Q6NANCNFSM4RXLNZNQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

UglyHobbitFeet avatar Nov 08 '21 15:11 UglyHobbitFeet

Okay thanks. But unfortunately I am not using GRAALVM but still getting the error. I will dig deeper than.

rajinderAdvarra avatar Nov 08 '21 15:11 rajinderAdvarra

Running the build command on docker makes the process hang for me too and I'm not using GRAALVM.

alecvn avatar Feb 22 '22 12:02 alecvn

I too am experiencing this same issue - also not using GRAALVM.

Any advice is appreciated.

omcpheelyGEL avatar Jul 14 '22 08:07 omcpheelyGEL

Same issue here too, not using GRAALVM. Just a Vue project with Typescript in a Docker container.

berzi avatar Jan 08 '23 16:01 berzi

For my case, build process ended with node v14 but non-stop with node v16 & v18.

xs9627 avatar Jan 17 '23 06:01 xs9627

I'm suddenly seeing this as well, using node v18 and the latest vue-cli-server 4.x / vue 2.7

I can try building using node 14, I suppose, see if that helps....

If anyone finds a way to get useful debug info out of the process please share! setting env var "NODE=*" gets a lot of extra debug stuff printed, but it still hits a point where it just stalls indefinitely with no explanation

taxilian avatar Sep 26 '23 16:09 taxilian

I upgraded to node 20 for that part of my build and it's working; there is something about node 18 which is causing the issue in my case

taxilian avatar Sep 26 '23 20:09 taxilian

I'm suddenly seeing this as well, using node v18 and the latest vue-cli-server 4.x / vue 2.7

Only 18.18.0 has this problem. When I tried 16, 20, or 18.17.1, all of them were ok.

njzjz avatar Oct 06 '23 19:10 njzjz

It should be due to this issue: https://github.com/nodejs/node/issues/49911

njzjz avatar Oct 06 '23 19:10 njzjz