Vue-cli: Terser TypeError: Cannot read property 'minify' of undefined

Created on 2 Feb 2019  ·  24Comments  ·  Source: vuejs/vue-cli

Version

3.4.0

Reproduction link

https://github.com/Skyline124/flaskregul2.git

Environment info

  System:
    OS: Linux 4.15 Ubuntu 18.04.1 LTS (Bionic Beaver)
    CPU: (8) x64 Intel(R) Core(TM) i7-6700K CPU @ 4.00GHz
  Binaries:
    Node: 11.9.0 - /usr/bin/node
    Yarn: Not Found
    npm: 6.5.0 - /usr/bin/npm
  Browsers:
    Chrome: Not Found
    Firefox: 65.0
  npmPackages:
    @vue/babel-helper-vue-jsx-merge-props:  1.0.0-beta.2 
    @vue/babel-plugin-transform-vue-jsx:  1.0.0-beta.2 
    @vue/babel-preset-app:  3.4.0 
    @vue/babel-preset-jsx:  1.0.0-beta.2 
    @vue/babel-sugar-functional-vue:  1.0.0-beta.2 
    @vue/babel-sugar-inject-h:  1.0.0-beta.2 
    @vue/babel-sugar-v-model:  1.0.0-beta.2 
    @vue/babel-sugar-v-on:  1.0.0-beta.2 
    @vue/cli-overlay:  3.4.0 
    @vue/cli-plugin-babel: ^3.4.0 => 3.4.0 
    @vue/cli-plugin-eslint: ^3.4.0 => 3.4.0 
    @vue/cli-service: ^3.4.0 => 3.4.0 
    @vue/cli-shared-utils:  3.4.0 
    @vue/component-compiler-utils:  2.5.2 
    @vue/preload-webpack-plugin:  1.1.0 
    @vue/web-component-wrapper:  1.2.0 
    eslint-plugin-vue: ^5.0.0 => 5.1.0 
    vue: ^2.5.22 => 2.5.22 
    vue-eslint-parser:  2.0.3 
    vue-hot-reload-api:  2.3.1 
    vue-loader:  15.6.2 
    vue-style-loader:  4.1.2 
    vue-template-compiler: ^2.5.21 => 2.5.22 
    vue-template-es2015-compiler:  1.8.2 
  npmGlobalPackages:
    @vue/cli: 3.4.0

Steps to reproduce

Installation of latest NodeJS version

curl -sL https://deb.nodesource.com/setup_11.x | sudo bash -
sudo apt install nodejs

vue-cli installation

sudo npm install -g @vue/cli

creation of the example by default application

vue create flaskregul2 
cd flaskregul2
npm run build

What is expected?

Build is expected to finish successfully.

What is actually happening?

Build produces the following errors :

0 info it worked if it ends with ok
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'build' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info lifecycle [email protected]~prebuild: [email protected]
6 info lifecycle [email protected]~build: [email protected]
7 verbose lifecycle [email protected]~build: unsafe-perm in 
lifecycle true
8 verbose lifecycle [email protected]~build: PATH: /usr/lib/node_modules/npm/node_modules/npm-lifecycle/node-gyp-bin:/home/gregoire/flaskregul2/node_modules/.bin:/home/gregoire/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
9 verbose lifecycle [email protected]~build: CWD: /home/gregoire/flaskregul2
10 silly lifecycle [email protected]~build: Args: [ '-c', 'vue-cli-service build' ]
11 silly lifecycle [email protected]~build: Returned: code: 1  signal: null
12 info lifecycle [email protected]~build: Failed to exec build script
13 verbose stack Error: [email protected] build: `vue-cli-service build`
13 verbose stack Exit status 1
13 verbose stack     at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/index.js:301:16)
13 verbose stack     at EventEmitter.emit (events.js:197:13)
13 verbose stack     at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/node_modules/npm-lifecycle/lib/spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:197:13)
13 verbose stack     at maybeClose (internal/child_process.js:978:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:265:5)
14 verbose pkgid [email protected]
15 verbose cwd /home/gregoire/flaskregul2
16 verbose Linux 4.15.0-43-generic
17 verbose argv "/usr/bin/node" "/usr/bin/npm" "run" "build"
18 verbose node v11.9.0
19 verbose npm  v6.5.0
20 error code ELIFECYCLE
21 error errno 1
22 error [email protected] build: `vue-cli-service build`
22 error Exit status 1
23 error Failed at the [email protected] build script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]

I do not succeed to build the default app from your website into production. It seems that Terser is not processing the files properly but I am not able to identify the precise issue...

Any help would be appreciated!

bug has workaround now upstream

Most helpful comment

A bug in terser 3.16 which was released hours ago.
For npm users: run npm i [email protected]
For yarn users: add the following field to package.json and then rerun yarn:

"resolutions": {
  "terser": "3.14.1"
}

All 24 comments

I just reported the same problem (https://github.com/vuejs/vue-cli/issues/3408) duplicate

I noticed that 3.4 was just released. I upgrade to 3.4 and tested and got the same error.
assets/js/chunk-vendors.76ce3e5a.js from Terser TypeError: Cannot read property 'minify' of undefined

A bug in terser 3.16 which was released hours ago.
For npm users: run npm i [email protected]
For yarn users: add the following field to package.json and then rerun yarn:

"resolutions": {
  "terser": "3.14.1"
}

we just downgraded to webpack 4.2 to avoid the use of terser which also worked.

Installing [email protected] didn't resolve the issue for me. I had to downgrade Webpack as mentioned by @carltierney to 4.2.0.

1549201853801
安装[email protected]和Webpack降级到4.2.0。并没有为我解决问题。

Same issue here after npm update this morning. Here is what worked for me. I rolled back the sequence below and it builds again. I'm not sure if all rollbacks were necessary, but I had no time to dig into details right now, so here goes nothing:

npm install @vue/[email protected]
npm install [email protected]
npm install @vue/[email protected]
npm install @vue/[email protected]
npm install [email protected]

npm install [email protected]

This caused quite a few headaches for me. Thanks to those offering hot fixes.

doing npm install [email protected] fixed this on my end thanks all

The workarounds do not work for me... could you guys just revert this? You really are impeding progress on my development of my app for Fitbit. Or alternatively when is the fix coming out? This is not only affecting vue.js but also react.js and the Fitbit SDK

Installing [email protected] fixed the issue for me.

If building your app in Docker when deploying, don't forget to remove the ^ in front of your terser dependency in your package.json to stop it from installing the affected version when the container is built. This tripped me up when I tried re-deploying after installing 3.14.

If using Yarn, yarn add [email protected] then removing node_modules folder. Lastly run yarn

@raymondware Should be (working for me) enough for Yarn. And of rm -rf node_modules yarn.lock

"resolutions": {
    "terser": "3.14.1"
  },

npm i [email protected] solved my error with npm run build on a project, but not @vue/cli-service-global (^3.4) when trying vue build online.vue --target wc --name online-status to build for production as a web component.

running npm install [email protected] worked for me too. thanks @tetreault !

running npm install [email protected] worked for me too. thanks @tetreault !

For me it was necessary to add it to the yml file for building it to production in Bitbucket.

Adding it to just my package.json didn't work.

This is not a bug. Maintainer is aware. But he just likes default exports so the whole world needs to get deal with it from now on

screenshot from 2019-02-04 12-07-50

https://twitter.com/swyx/status/1091959223406084096

Looks like we have mad scientist case here. I can't explain such Egoism otherwise.

On new test, the 3.6.1 version work with npm run build but don't work with vue-cli-service build.

Both terser and terser-webpack-plugin have released a new patch version to address this issue.
Please delete your lockfile and node_modules and reinstall the deps.

If there's any further problems please open a new issue with a corresponding reproduction.

running npm install [email protected] worked for me too

The aforementioned workarounds does not seem to work in my case :(

js/app.5f6168a5.js from Terser
Unexpected token operator «+», expected punc «,» [webpack/bootstrap:71,1167][js/app.5f6168a5.js:72,1178]
    at ee (F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:19541)
    at c (F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:28244)
    at l (F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:28335)
    at p (F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:28475)
    at _ (F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:28587)
    at F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:43316
    at F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:28976
    at G (F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:42192)
    at ge (F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:48272)
    at Ae (F:\my-business\capstone-cte-ims\ui\node_modules\terser-webpack-plugin\node_modules\terser\dist\bundle.min.js:1:48998)
Was this page helpful?
0 / 5 - 0 ratings

Related issues

CodeApePro picture CodeApePro  ·  3Comments

csakis picture csakis  ·  3Comments

sanderswang picture sanderswang  ·  3Comments

jgribonvald picture jgribonvald  ·  3Comments

OmgImAlexis picture OmgImAlexis  ·  3Comments