using an options object that does not match the API schema.

using an options object that does not match the API schema.

wanglimindeMacBook-Air:8-5 wanglimin$ npm run build

> 8-5@1.0.0 build /Users/wanglimin/Desktop/resource/8-5
> cross-env NODE_ENV=prod webpack --config config/webpack.config.prod.js

Invalid options object. Terser Plugin has been initialized using an options object that does not match the API schema.
 - options has an unknown property 'sourceMap'. These properties are valid:
   object { test?, include?, exclude?, terserOptions?, extractComments?, parallel?, minify? }
ValidationError: Invalid options object. Terser Plugin has been initialized using an options object that does not match the API schema.
    at validate (/Users/wanglimin/Desktop/resource/8-5/node_modules/_schema-utils@3.0.0@schema-utils/dist/validate.js:104:11)
    at new TerserPlugin (/Users/wanglimin/Desktop/resource/8-5/node_modules/_terser-webpack-plugin@5.1.3@terser-webpack-plugin/dist/index.js:131:31)
    at Object.<anonymous> (/Users/wanglimin/Desktop/resource/8-5/config/webpack.config.prod.js:15:13)
    at Module._compile (/Users/wanglimin/Desktop/resource/8-5/node_modules/v8-compile-cache/v8-compile-cache.js:192:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
    at Module.load (internal/modules/cjs/loader.js:928:32)
    at Function.Module._load (internal/modules/cjs/loader.js:769:14)
    at Module.require (internal/modules/cjs/loader.js:952:19)
    at require (/Users/wanglimin/Desktop/resource/8-5/node_modules/v8-compile-cache/v8-compile-cache.js:159:20)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! 8-5@1.0.0 build: `cross-env NODE_ENV=prod webpack --config config/webpack.config.prod.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the 8-5@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/wanglimin/.npm/_logs/2021-06-21T22_38_01_407Z-debug.log

报错形式如上,看提示可能让我检查配置信息,查了几遍和视频上一样啊

These properties are valid:

   object { test?, include?, exclude?, terserOptions?, extractComments?, parallel?, minify? }

ValidationError: Invalid options object. Terser Plugin has been initialized using an options object that does not match the API schema.


webpack.config.prod.js 如下

const webpackMerge = require('webpack-merge')

const baseWebpackConfig = require('./webpack.config.base')

const TerserWebpackPlugin = require('terser-webpack-plugin')

const webpackConfig = webpackMerge(baseWebpackConfig, {
mode: 'production',
stats: {
children: false,
warnings: false
},
optimization: {
minimizer: [
new TerserWebpackPlugin({
terserOptions: {
warnings: false,
compress: {
warnings: false,
drop_console: false,
dead_code: true,
drop_debugger: true,
},
output: {
comments: false,
beautify: false,
},
mangle: true,
},
parallel: true,
sourceMap: false,
})
],
splitChunks: {
cacheGroups: {
commons: {
name: 'commons',
chunks: 'initial',
minChunks: 3,
enforce: true
},
},
},
}
})

module.exports = webpackConfig


正在回答

登陆购买课程后可参与讨论,去登陆

2回答

我写了一个示例应用https://git.imooc.com/class-70/webpack-v5-nodemon

  • 幕布斯3322991 提问者 #1

    打包出来这一刻好舒畅,就像多年的便秘一朝得救。感谢百万年薪大佬师

    2021-06-25 06:44:31
Brian 2021-06-22 13:18:17

webpack v4到v5有一些变化,可以参考这一节的视频:


http://img1.sycdn.imooc.com//climg/60d17298091b503015761408.jpg

  • 提问者 幕布斯3322991 #1
    {
    "name": "8-5",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
    "start": "nodemon --exec babel-node src/index.js",
    "webpack:debug": "node --inspect-brk ./node_modules/.bin/webpack --inline --progress",
    "build": "cross-env NODE_ENV=prod webpack --config config/webpack.config.prod.js"
    },
    "keywords": [],
    "author": "",
    "license": "ISC",
    "dependencies": {
    "@koa/cors": "^3.1.0",
    "koa": "^2.13.1",
    "koa-body": "^4.2.0",
    "koa-combine-routers": "^4.0.2",
    "koa-compose": "^4.1.0",
    "koa-helmet": "^6.1.0",
    "koa-json": "^2.0.2",
    "koa-router": "^10.0.0",
    "koa-static": "^5.0.0"
    },
    "devDependencies": {
    "@babel/core": "^7.14.6",
    "@babel/node": "^7.14.5",
    "@babel/preset-env": "^7.14.5",
    "babel-loader": "^8.2.2",
    "clean-webpack-plugin": "^4.0.0-alpha.0",
    "cross-env": "^7.0.3",
    "nodemon": "^2.0.7",
    "terser-webpack-plugin": "^5.1.3",
    "webpack": "^4.46.0",
    "webpack-cli": "^3.3.12",
    "webpack-merge": "^5.8.0",
    "webpack-node-externals": "^3.0.0"
    }
    }

    我有留意用webpack v4,检查了package.json确实也没有到v5,麻烦老师再看看可能的原因

    2021-06-22 23:20:46
  • 提问者 幕布斯3322991 #2
    options has an unknown property 'sourceMap'

    我看这里有这句话以为是这个属性失效了,尝试去注释掉他还是不行

    http://img1.sycdn.imooc.com//climg/60d2022809fd788811800682.jpg

    2021-06-22 23:31:04
  • 提问者 幕布斯3322991 #3

    已经把 webpack.config.base.js

    webpack.config.prod.js

    ​utils.js

    完全复制粘贴了老师的源码了,还是一样问题,应该也不是输入错误问题

    2021-06-22 23:45:05
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师