pnpm node-linker-解決從npm|yarn 切換導致的“幽靈依賴”問題

初始說明:

"幽靈依賴" 本身原因是 依賴中的依賴(的依賴)被項目工程中引用;切換pnpm后,利用軟硬鏈接 + .pnpm 隔絕了這種不正常的使用方式,導致問題出現;

// 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 添加)
給出官網說明:


image.png

優缺點:
1、沒有將pnpm特性發揮極致
2、原工程幾乎沒有任何調整(僅 .npmrc 添加 配置)

解決方式二 依賴解決

由于本身 “幽靈依賴”存在就是缺少依賴包,根據報錯,添加依賴包即可

優缺點
1、正常的解題思路
2、可能需要加很多的包再里面
3、可能存在添加了依賴也存在的問題(依賴的依賴,使用了不合適的依賴包,這樣需要很大精力去處理)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容