包裹 SemVer 错误

问题描述

所以,我之前曾多次使用 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/每晚 here 的更多信息。

赶上那个问题 here


更新 #1:28/05/2021

截至撰写本文时 (28/05/2021),Parcel 团队似乎一直在致力于修复。虽然我没有亲自检查更新是否正常工作,但这个答案仍然是一个非常可行和可行的解决方案。

,

我最近遇到了这个问题,即使在尝试了发布在 GitHub #5943 上的非常合乎逻辑的解决方法之后,parcel@1.12.4 仍然不断抛出 Invalid Version: undefined

安装 parcelV2 在我的情况下有效。如果其他人也面临类似的问题,我建议您尝试以下步骤:

  1. npm uninstall -D parcel-bundler
  2. npm install -D parcel@next
  3. npx parcel serve index.html

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...