programing

예기치 않은 토큰: UglifyJs의 연산자(>)

javaba 2022. 8. 12. 22:53
반응형

예기치 않은 토큰: UglifyJs의 연산자(>)

2개의 Vue-Cli 웹 팩 프로젝트(ClientApp 및 Lib)가 있습니다.Lib는 내 컴포넌트 라이브러리(다른 프로젝트와 공유)

문제

프로젝트 Client App을 빌드할 때npm run build, 다음의 에러가 발생했습니다.

ERROR in static/js/app.d08a24ce0e8d0438ce68.js from UglifyJs
Unexpected token: operator (>) [C:/.../Lib/src/tools/escape-key.js:3,0][static/js/app.d08a24ce0e8d0438ce68.js:17468,38]

문의사항

파일 내의 화살표 함수에서 오류가 발생한 것 같습니다.escape-key.js이것은 ES6 구문과 Uglife입니다.JS가 해석할 수 없습니다.우글리피 전에 바벨이 먼저 해야 하지 않나요?는, 와의 호환성에 주의해 주세요.*.vue파일을 표시합니다.

프로젝트 구조

ClientApp
   | - build
   | - config
   | - src
       | - App.Vue // import EscapeKey from '~lib/tools/escape-key';



Lib
  | -src
     | - tools
         | - escape-key.js

ClientApp의 webpack.base.conf.js 파일

Lib에는 에일리어스가 있습니다.

resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: {
      '@': resolve('src'),
      '~lib': path.join(__dirname, '../../lib/src'),
    }
  },

자세한 내용은 필요하시면 언제든지 문의해 주십시오.

더하다

"uglifyjs-webpack-plugin": "v1.0.0-beta.1",

사용자의 Dev 종속성에 대해 설명하고webpack.config.js이 버전을 명시적으로 사용하는 파일:

const UglifyJSPlugin = require('uglifyjs-webpack-plugin')

module.exports = {
  plugins: [
    new UglifyJSPlugin()
  ]
}

uglifyjs-webpack-displays 최신 안정 릴리스(v0.4.6)는 이전 버전을 사용합니다.uglify-js대신uglify-esES6를 변환할 수 있습니다.이 의존관계는 1.0.0-beta.1 릴리즈에서 갱신되었습니다.

https://github.com/webpack-contrib/uglifyjs-webpack-plugin/releases/tag/v1.0.0-beta.1

이것으로 나는 그 문제를 해결했다.설치했습니다.uglifyjs-webpack-plugin

npm install uglifyjs-webpack-plugin --save-dev

그리고 이것을 내 것에 추가했다.webpack.config

const UglifyJSPlugin = require('uglifyjs-webpack-plugin')

module.exports = {
  plugins: [
    new UglifyJSPlugin()
  ]
}

사용하시는 uglify 버전은 ES6를 지원하지 않을 수 있습니다.

https://github.com/mishoo/UglifyJS2/tree/harmony은 현재 es6 버전입니다.

웹 팩 플러그인을 사용하려면 es6에 관한 설치 섹션에 유의하십시오.

중요!플러그인은 uglify-js에 대한 피어 의존성이 있기 때문에 플러그인을 사용하려면 uglify-js도 설치해야 합니다.현재(2017/1/25) 사용 가능한 uglify-js npm 패키지는 ES6 코드의 최소화는 지원하지 않습니다.ES6 지원, ES6 지원, 일명 Uglife 버전JS를 제공해야 합니다.

최소 목표가 ES6인 경우:

yarn add git://github.com/mishoo/UglifyJS2#harmony-v2.8.22 --dev

babel-loader 설정을 변경한 후 동작했습니다.

Babel-loader 설정

{
  test: /\.js$/,
  loader: 'babel-loader',
  include: [path.join(__dirname, '../../Lib/src'), resolve('src'), resolve('test')]
}

언급URL : https://stackoverflow.com/questions/43888474/unexpected-token-operator-from-uglifyjs

반응형