包裹 SemVer 错误
Parcel SemVer bug
所以,我以前多次使用过 Parcel,但从未遇到过问题。
这次它抛出了一些关于 SemVer 版本控制的愚蠢错误,我真的失去了理智试图找到解决这个问题的解决方案。
我开始了新项目:安装了带 npm init
的 npm(没有其他选项),然后安装了 parcel npm install --save-dev parcel-bundler
,然后创建了我的文件夹结构:
--node_modules
--index.html
--index.js
这是我的 package.json:
{
"name": "playground",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "parcel index.html"
},
"author": "",
"license": "ISC",
"devDependencies": {
"parcel-bundler": "^1.12.4"
}
}
我已经将默认 npm 脚本配置为 运行 包裹:"dev": "parcel index.html"
和 运行 它。
一切正常,但是当我通过 <script src="/index.js"></script>
在 index.html 中连接我的 index.js 时,它会抛出大错误,说:
D:\workingSpace\playground\index.js: Invalid Version: undefined
at new SemVer (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:314:11)
at compare (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:647:10)
at lt (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:688:10)
at D:\workingSpace\playground\node_modules\@babel\preset-env\lib\index.js:276:22
at Object.default (D:\workingSpace\playground\node_modules\@babel\helper-plugin-utils\lib\index.js:22:12)
at getEnvPlugins (D:\workingSpace\playground\node_modules\parcel-bundler\src\transforms\babel\env.js:62:34)
at getEnvConfig (D:\workingSpace\playground\node_modules\parcel-bundler\src\transforms\babel\env.js:12:25)
at async getBabelConfig (D:\workingSpace\playground\node_modules\parcel-bundler\src\transforms\babel\config.js:32:19)
at async babelTransform (D:\workingSpace\playground\node_modules\parcel-bundler\src\transforms\babel\transform.js:6:16)
at async JSAsset.pretransform (D:\workingSpace\playground\node_modules\parcel-bundler\src\assets\JSAsset.js:83:5)
目前我使用的是 Node v14.6.0,因此它是 npm 版本 - 6.14.11
我以前从未遇到过这个错误,请帮助T_T
这是最新版本的 Parcel 中的一个已知问题。
这个问题的解决方案是恢复到版本 1.12.3
,或者更新到 Parcel 的版本 2。您可以通过以下方式完成第一个解决方案:
npm uninstall parcel-bundler
npm i --save-dev parcel-bundler@1.12.3
第二个解决方案可以这样完成:
npm i --save-dev parcel@next
如果您决定使用 Parcel 的夜间版本,您可能需要稍微重构您的代码以防止破坏性更改。查看更多关于如何迁移到 Parcel v2/nightly here.
赶上那个问题 here。
更新 #1:28/05/2021
截至撰写本文时(2021 年 5 月 28 日),Parcel 团队似乎一直在进行修复。虽然我没有亲自检查更新是否正常工作,但这个答案仍然是一个非常可行和可行的解决方案。
我最近遇到了这个问题,即使在 GitHub #5943.
上发布了一个非常合乎逻辑的解决方法后,parcel@1.12.4
仍继续抛出 Invalid Version: undefined
安装 parcelV2
对我有效。如果其他人遇到类似问题,我建议您尝试以下步骤:
npm uninstall -D parcel-bundler
npm install -D parcel@next
npx parcel serve index.html
所以,我以前多次使用过 Parcel,但从未遇到过问题。 这次它抛出了一些关于 SemVer 版本控制的愚蠢错误,我真的失去了理智试图找到解决这个问题的解决方案。
我开始了新项目:安装了带 npm init
的 npm(没有其他选项),然后安装了 parcel npm install --save-dev parcel-bundler
,然后创建了我的文件夹结构:
--node_modules
--index.html
--index.js
这是我的 package.json:
{
"name": "playground",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "parcel index.html"
},
"author": "",
"license": "ISC",
"devDependencies": {
"parcel-bundler": "^1.12.4"
}
}
我已经将默认 npm 脚本配置为 运行 包裹:"dev": "parcel index.html"
和 运行 它。
一切正常,但是当我通过 <script src="/index.js"></script>
在 index.html 中连接我的 index.js 时,它会抛出大错误,说:
D:\workingSpace\playground\index.js: Invalid Version: undefined at new SemVer (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:314:11) at compare (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:647:10) at lt (D:\workingSpace\playground\node_modules\@babel\preset-env\node_modules\semver\semver.js:688:10) at D:\workingSpace\playground\node_modules\@babel\preset-env\lib\index.js:276:22 at Object.default (D:\workingSpace\playground\node_modules\@babel\helper-plugin-utils\lib\index.js:22:12) at getEnvPlugins (D:\workingSpace\playground\node_modules\parcel-bundler\src\transforms\babel\env.js:62:34) at getEnvConfig (D:\workingSpace\playground\node_modules\parcel-bundler\src\transforms\babel\env.js:12:25) at async getBabelConfig (D:\workingSpace\playground\node_modules\parcel-bundler\src\transforms\babel\config.js:32:19) at async babelTransform (D:\workingSpace\playground\node_modules\parcel-bundler\src\transforms\babel\transform.js:6:16) at async JSAsset.pretransform (D:\workingSpace\playground\node_modules\parcel-bundler\src\assets\JSAsset.js:83:5)
目前我使用的是 Node v14.6.0,因此它是 npm 版本 - 6.14.11
我以前从未遇到过这个错误,请帮助T_T
这是最新版本的 Parcel 中的一个已知问题。
这个问题的解决方案是恢复到版本 1.12.3
,或者更新到 Parcel 的版本 2。您可以通过以下方式完成第一个解决方案:
npm uninstall parcel-bundler
npm i --save-dev parcel-bundler@1.12.3
第二个解决方案可以这样完成:
npm i --save-dev parcel@next
如果您决定使用 Parcel 的夜间版本,您可能需要稍微重构您的代码以防止破坏性更改。查看更多关于如何迁移到 Parcel v2/nightly here.
赶上那个问题 here。
更新 #1:28/05/2021
截至撰写本文时(2021 年 5 月 28 日),Parcel 团队似乎一直在进行修复。虽然我没有亲自检查更新是否正常工作,但这个答案仍然是一个非常可行和可行的解决方案。
我最近遇到了这个问题,即使在 GitHub #5943.
上发布了一个非常合乎逻辑的解决方法后,parcel@1.12.4
仍继续抛出 Invalid Version: undefined
安装 parcelV2
对我有效。如果其他人遇到类似问题,我建议您尝试以下步骤:
npm uninstall -D parcel-bundler
npm install -D parcel@next
npx parcel serve index.html