umi4曾经公布一段时间了,当初我的项目中还是用的umi3版本,umi3最坑的就是mfsu不会热更新,而且umi4新增了一些性能,所以打算把umi版本升级下。
问题
通过 npm create umi,抉择pnpm装置。
报错:dyld: Symbol not found: _SecTrustEvaluateWithError
环境:
mac os: 10.12.6
node.js: v16.14.2
pnpm报错:
Packages are hard linked from the content-addressable store to the virtual store. Content-addressable store is at: /Users/keven/Library/pnpm/store/v3 Virtual store is at: node_modules/.pnpmProgress: resolved 1192, reused 1063, downloaded 0, added 1112, donenode_modules/.pnpm/esbuild@0.14.36/node_modules/esbuild: Running postinstall script, failed in 568ms.../esbuild@0.14.36/node_modules/esbuild postinstall$ node install.js│ node:child_process:828│ err = new Error(msg);│ ^│ Error: Command failed: /Users/keven/Documents/personal/code/umi/antd/node_modules/.pnpm/esbuild@0.14.36/node_m│ dyld: Symbol not found: _SecTrustEvaluateWithError│ Referenced from: /Users/keven/Documents/personal/code/umi/antd/node_modules/.pnpm/esbuild@0.14.36/node_modul│ Expected in: flat namespace│ at checkExecSyncError (node:child_process:828:11)│ at Object.execFileSync (node:child_process:866:15)│ at validateBinaryVersion (/Users/keven/Documents/personal/code/umi/antd/node_modules/.pnpm/esbuild@0.14.36│ at /Users/keven/Documents/personal/code/umi/antd/node_modules/.pnpm/esbuild@0.14.36/node_modules/esbuild/i│ status: null,│ signal: 'SIGABRT',│ output: [│ null,│ Buffer(0) [Uint8Array] [],│ Buffer(215) [Uint8Array] [│ 100, 121, 108, 100, 58, 32, 83, 121, 109, 98, 111, 108,│ 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 58, 32,│ 95, 83, 101, 99, 84, 114, 117, 115, 116, 69, 118, 97,│ 108, 117, 97, 116, 101, 87, 105, 116, 104, 69, 114, 114,│ 111, 114, 10, 32, 32, 82, 101, 102, 101, 114, 101, 110,│ 99, 101, 100, 32, 102, 114, 111, 109, 58, 32, 47, 85,│ 115, 101, 114, 115, 47, 107, 101, 118, 101, 110, 47, 68,│ 111, 99, 117, 109, 101, 110, 116, 115, 47, 112, 101, 114,│ 115, 111, 110, 97,│ ... 115 more items│ ]│ ],│ pid: 15457,│ stdout: Buffer(0) [Uint8Array] [],│ stderr: Buffer(215) [Uint8Array] [│ 100, 121, 108, 100, 58, 32, 83, 121, 109, 98, 111, 108,│ 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 58, 32,│ 95, 83, 101, 99, 84, 114, 117, 115, 116, 69, 118, 97,│ 108, 117, 97, 116, 101, 87, 105, 116, 104, 69, 114, 114,│ 111, 114, 10, 32, 32, 82, 101, 102, 101, 114, 101, 110,│ 99, 101, 100, 32, 102, 114, 111, 109, 58, 32, 47, 85,│ 115, 101, 114, 115, 47, 107, 101, 118, 101, 110, 47, 68,│ 111, 99, 117, 109, 101, 110, 116, 115, 47, 112, 101, 114,│ 115, 111, 110, 97,│ ... 115 more items│ ]│ }└─ Failed in 569ms ELIFECYCLE Command failed with exit code 1.
换yarn试试,同样报错
error /Users/keven/Documents/personal/code/umi/antd/node_modules/esbuild: Command failed.Exit code: 1Command: node install.jsArguments: Directory: /Users/keven/Documents/personal/code/umi/antd/node_modules/esbuildOutput:node:child_process:828 err = new Error(msg); ^Error: Command failed: node /Users/keven/Documents/personal/code/umi/antd/node_modules/esbuild/bin/esbuild --versiondyld: Symbol not found: _SecTrustEvaluateWithError Referenced from: /Users/keven/Documents/personal/code/umi/antd/node_modules/esbuild-darwin-64/bin/esbuild Expected in: flat namespacenode:child_process:869 throw err; ^Error: Command failed: /Users/keven/Documents/personal/code/umi/antd/node_modules/esbuild-darwin-64/bin/esbuild --version at checkExecSyncError (node:child_process:828:11) at Object.execFileSync (node:child_process:866:15) at Object.<anonymous> (/Users/keven/Documents/personal/code/umi/antd/node_modules/esbuild/bin/esbuild:172:28) at Module._compile (node:internal/modules/cjs/loader:1103:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1157:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) at node:internal/main/run_main_module:17:47 { status: null, signal: 'SIGABRT', output: [ null, null, null ], pid: 15677, stdout: null, stderr: null} at checkExecSyncError (node:child_process:828:11) at Object.execFileSync (node:child_process:866:15) at validateBinaryVersion (/Users/keven/Documents/personal/code/umi/antd/node_modules/esbuild/install.js:101:32) at /Users/keven/Documents/personal/code/umi/antd/node_modules/esbuild/install.js:249:5 { status: 1, signal: null, output: [ null, Buffer(0) [Uint8Array] [], Buffer(1114) [Uint8Array] [ 100, 121, 108, 100, 58, 32, 83, 121, 109, 98, 111, 108, 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 58, 32, 95, 83, 101, 99, 84, 114, 117, 115, 116, 69, 118, 97, 108, 117, 97, 116, 101, 87, 105, 116, 104, 69, 114, 114, 111, 114, 10, 32, 32, 82, 101, 102, 101, 114, 101, 110, 99, 101, 100, 32, 102, 114, 111, 109, 58, 32, 47, 85, 115, 101, 114, 115, 47, 107, 101, 118, 101, 110, 47, 68, 111, 99, 117, 109, 101, 110, 116, 115, 47, 112, 101, 114, 115, 111, 110, 97, ... 1014 more items ] ], pid: 15676, stdout: Buffer(0) [Uint8Array] [], stderr: Buffer(1114) [Uint8Array] [ 100, 121, 108, 100, 58, 32, 83, 121, 109, 98, 111, 108, 32, 110, 111, 116, 32, 102, 111, 117, 110, 100, 58, 32, 95, 83, 101, 99, 84, 114, 117, 115, 116, 69, 118, 97, 108, 117, 97, 116, 101, 87, 105, 116, 104, 69, 114, 114, 111, 114, 10, 32, 32, 82, 101, 102, 101, 114, 101, 110, 99, 101, 100, 32, 102, 114, 111, 109, 58, 32, 47, 85, 115, 101, 114, 115, 47, 107, 101, 118, 101, 110, 47, 68, 111, 99, 117, 109, 101, 110, 116, 115, 47, 112, 101, 114, 115, 111, 110, 97,
解决办法
官网也有人提同样的问题,然而没有解决办法,https://github.com/evanw/esbuild/issues/2183
有的文章说是go版本的问题,和go没关系,次要是因为esbuild版本问题。
最终解决办法,在package.json加上上面的配置,次要是通过npm override来扭转esbuild版本信息
"devDependencies": { "esbuild-wasm":"latest"},"overrides": { "esbuild":"npm:esbuild-wasm@latest"}
执行npm install就装置好了