Parcel SemVer bug

So, I’ve used Parcel multiple times before and I’ve never had an issue with it. This time it throws some stupid errors about SemVer versioning and I’m literally loosing my mind trying to find a solution which would fix this problem.

I’ve started new project: installed npm w/ npm init (no additional options), then installed parcel npm install --save-dev parcel-bundler and then created my folder structure:

–node_modules
–index.html
–index.js

Here is my 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"
  }
}

I’ve configured default npm script to run parcel: "dev": "parcel index.html" and run it. Everything works fine, however when I connect my index.js in index.html via <script src="/index.js"></script> it throws big fat error, saying:

D:workingSpaceplaygroundindex.js: Invalid Version: undefined
  at new SemVer (D:[email protected]_modulessemversemver.js:314:11)
  at compare (D:[email protected]_modulessemversemver.js:647:10)   
  at lt (D:[email protected]_modulessemversemver.js:688:10)        
  at D:[email protected]:276:22
  at Object.default (D:[email protected]dex.js:22:12)     
  at getEnvPlugins (D:workingSpaceplaygroundnode_modulesparcel-bundlersrctransformsbabelenv.js:62:34)   
  at getEnvConfig (D:workingSpaceplaygroundnode_modulesparcel-bundlersrctransformsbabelenv.js:12:25)    
  at async getBabelConfig (D:workingSpaceplaygroundnode_modulesparcel-bundlersrctransformsbabelconfig.js:32:19)
  at async babelTransform (D:workingSpaceplaygroundnode_modulesparcel-bundlersrctransformsbabeltransform.js:6:16)
  at async JSAsset.pretransform (D:workingSpaceplaygroundnode_modulesparcel-bundlersrcassetsJSAsset.js:83:5)

Currently I’m using Node v14.6.0 and accordingly it’s npm version – 6.14.11

I’ve never faced this bug before, please help T_T

Answer

This is a known problem in the newest version of Parcel.

The solution of this problem was to revert back to version 1.12.3, or by updating to the version 2 of Parcel. You can do the first solution by:

npm uninstall parcel-bundler
npm i --save-dev [email protected]

The second solution could be done like this:

npm i --save-dev [email protected]

You might have to refactor your code a bit to prevent breaking changes if you decided to use the nightly version of Parcel. Check more about how to migrate to Parcel v2 / nightly here.

Catch up with that issue here.

Leave a Reply

Your email address will not be published. Required fields are marked *