【问题标题】:Parcel SemVer bugParcel SemVer 错误
【发布时间】:2021-06-02 03:48:41
【问题描述】:

所以,我以前曾多次使用过 Parcel,但从未遇到过问题。 这一次它抛出了一些关于 SemVer 版本控制的愚蠢错误,我真的在试图找到一个可以解决这个问题的解决方案时失去理智。

我已经开始了新项目:安装 npm w/npm init(没有其他选项),然后安装 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 脚本来运行 parcel:"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

【问题讨论】:

    标签: node.js node-modules semantic-versioning parceljs


    【解决方案1】:

    这是最新版 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 团队似乎一直在努力解决问题。虽然我没有亲自检查更新是否正常工作,但这个答案仍然是一个非常可行且可行的解决方案。

    【讨论】:

    • 字面的上帝。我知道我以前怎么没有遇到过这个问题,但是,谢谢。
    • 你说“众所周知”,但在我发现这个问题之前,我完全被这个问题难住了。谢谢。
    • 让我免于头痛。谢谢。
    • 在我删除并重新创建 yarn.lock 之前,降级到 .3 或升级到 .5 本身并没有帮助。
    • 就我而言,下一个版本也不起作用。我不得不求助于旧的。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-16
      • 2021-12-04
      • 1970-01-01
      • 1970-01-01
      • 2020-08-12
      • 1970-01-01
      • 2018-08-06
      相关资源
      最近更新 更多