我正在使用 Parcel 来构建。我们最近升级到 Node 20 LTS(一个月前),所以也许这与它有关。
当我在 Docker 容器中运行
parcel build
并使用新同步的 Node_modules(但预先存在 package-lock.json
)时,我在构建中收到以下错误:
[build-] @parcel/core: Failed to resolve 'dunder-proto/get' from
[build-] '/****/qbdvision/src/main/client/node_modules/get-proto/index.js'
[build-] /****/qbdvision/src/main/client/node_modules/get-proto/index.js:6:30
[build-] 5 |
[build-] > 6 | var getDunderProto = require('dunder-proto/get');
[build-] > | ^^^^^^^^^^^^^^^^^^
[build-] 7 |
[build-] 8 | /** @type {import('.')} */
[build-]
[build-]
[build-] @parcel/resolver-default: Error parsing JSON
[build-] /****/qbdvision/src/main/client/node_modules/dunder-proto/package.json:5:14
[build-] 4 | "description": "If available, the `Object.prototype.__proto__` accesso
[build-] > 5 | "main": false,
[build-] > | ^ invalid type: boolean `false`, expected a borrowed string at line 5 column 14
[build-] 6 | "exports": {
[build-] 7 | "./get": "./get.js",
[build-]
[build-] Segmentation fault (core dumped)
为什么
@parcel/resolver-default
关心dunder-proto
在package.json中有main: false
?我们不使用 dunder-proto
,但我们确实使用 eslint-plugin-react
,它位于 our package.json 的 devDependency 中。
ryanshillington:~/projects/qbdvision$ npm ls dunder-proto
[email protected] /Users/ryanshillington/projects/qbdvision
├─┬ [email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ └─┬ [email protected]
│ └── [email protected]
└─┬ [email protected]
└─┬ [email protected]
└─┬ [email protected]
├─┬ [email protected]
│ └── [email protected] deduped
└─┬ [email protected]
└── [email protected] deduped
ryanshillington:~/projects/qbdvision$
来自
@parcel/resolver-default
的错误也会发生在本地。
如何解决这个问题以便我可以正确构建?
我尝试删除我们的 package-lock.json 但这导致了其他问题。