更改前package.json文件
{
"name": "djangomall",
"version": "0.0.0",
"description": "djangomall app",
"main": "index.js",
"scripts": {
"watch": "webpack --mode=development --progress --watch",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "jacky",
"license": "ISC",
"devDependencies": {
"cross-env": "^7.0.2",
"webpack": "^4.43.0",
"webpack-bundle-tracker": "^0.4.3",
"webpack-cli": "^3.3.11"
}
}
运行npm run watch后报错
Error: error:0308010C:digital envelope routines::unsupported
解决办法:开启 legacy OpenSSL provider,在package.json
文件的scripts
中添加如下命令,Windows解决办法如下:
set NODE_OPTIONS=–openssl-legacy-provider &&
更改后的package.json文件如下:
{
"name": "djangomall",
"version": "0.0.0",
"description": "djangomall app",
"main": "index.js",
"scripts": {
"watch": "set NODE_OPTIONS=--openssl-legacy-provider && webpack --mode=development --progress --watch",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "jacky",
"license": "ISC",
"devDependencies": {
"cross-env": "^7.0.2",
"webpack": "^4.43.0",
"webpack-bundle-tracker": "^0.4.3",
"webpack-cli": "^3.3.11"
}
}
Linux下如下:export NODE_OPTIONS=--openssl-legacy-provider
报错原因猜测:使用了高版本的Node.js,然后使用了webpack4,我的Node.js是 v18.15.0