初始說明:
"幽靈依賴" 本身原因是 依賴中的依賴(的依賴)被項(xiàng)目工程中引用;切換pnpm后崩侠,利用軟硬鏈接 + .pnpm 隔絕了這種不正常的使用方式玫膀,導(dǎo)致問題出現(xiàn);
// vue.config.js
// vue-cli3本身有安裝插件,不做package依賴安裝
const TerserPlugin = require('terser-webpack-plugin');
// ,.....
// 去掉debugger console.log
new TerserPlugin({
parallel: 3,
exclude: /node_modules/,
terserOptions: {
compress: {
warnings: false,
drop_console: false,
drop_debugger: true,
pure_funcs: ['console.log']
}
}
}),
解決方式一 配置解決
node-linker=hoisted (.npmrc 添加)
給出官網(wǎng)說明:
優(yōu)缺點(diǎn):
1、沒有將pnpm特性發(fā)揮極致
2钥星、原工程幾乎沒有任何調(diào)整(僅 .npmrc 添加 配置)
解決方式二 依賴解決
由于本身 “幽靈依賴”存在就是缺少依賴包矢炼,根據(jù)報(bào)錯(cuò)秽浇,添加依賴包即可
優(yōu)缺點(diǎn)
1盛末、正常的解題思路
2、可能需要加很多的包再里面
3矿卑、可能存在添加了依賴也存在的問題(依賴的依賴喉恋,使用了不合適的依賴包,這樣需要很大精力去處理)