Search code examples
javascriptnode.jsterminalbabeljsbabel-loader

babel command converts when run in terminal but running the script ends in error


I've been trying to get babel core and cli to convert modern JavaScript from index.js into bundle.js.

here is my simple package.json

{
    "name": "chapter19",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
        "babel": "./node_modules/.bin/babel ./src/index.js -w -o ./dist/assets/bundle.js"
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
        "@babel/cli": "^7.16.7",
        "@babel/core": "^7.16.7",
        "@babel/preset-env": "^7.16.7",
        "babel-loader": "^8.2.3"
    }
}

now when I run node_modules/.bin/babel ./src/index.js -w -o ./dist/assets/bundle.js in terminal, it works fine but when I try to run "npm run babel" in terminal, I get the following errors. so far here is what I've tried :

"babel": "node_modules/.bin/babel src/index.js -w -o dist/assets/bundle.js"

result: 'node_modules' is not recognized as an internal or external command, operable program or batch file.

"babel": "./node_modules/.bin/babel src/index.js -w -o dist/assets/bundle.js"

result:'.' is not recognized as an internal or external command, operable program or batch file.

I have also read this issue, which is basically:

"babel": "node ./node_modules/.bin/babel src/index.js -w -o dist/assets/bundle.js"

OR

"babel": "node ./node_modules/.bin/babel ./src/index.js -w -o ./dist/assets/bundle.js"

and I get the following error:

SyntaxError: missing ) after argument list
    at Object.compileFunction (node:vm:352:18)
    at wrapSafe (node:internal/modules/cjs/loader:1031:15)
    at Module._compile (node:internal/modules/cjs/loader:1065:27)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
    at node:internal/main/run_main_module:17:47

here is my folder structure (in case if its needed)

enter image description here


Solution

  • For those who are interested in resolving this issue, in Windows you can use the following:

    "scripts": {
        "babel": ".\\node_modules\\.bin\\babel src\\index.js -w -o dist\\assets\\bundle.js"
    },