当依赖项的 package.json 中存在“main: false”时,Parcel 无法构建

问题描述 投票:0回答:1

我正在使用 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 但这导致了其他问题。

node.js node-modules package.json parceljs
1个回答
0
投票

解决方案是将Parcel升级到最新版本。我升级到

2.13.3
。这是一个已在这里解决的错误:

https://github.com/parcel-bundler/parcel/pull/10053

© www.soinside.com 2019 - 2024. All rights reserved.