0

I'm trying to transpile an ES6 file using Babel - but NPM doesn't like the command babel src --out-dir output which is run using a script in my package.json.

However, when I install Babel globally and run the same command without using the script, it works just fine.

I would like to avoid installing Babel globally if I don't have to.

Error (see debug log below) TypeError: src/person.js: Expected 'input' to be a 'string', got 'number' And looks like the command babel src --out-dir output "fails on your system"

Project setup

-> root
   -> node_modules
   -> output
   -> src
      - person.js
   - .babelrc
   - package.json

package.json

{
  "name": "Test",
  "version": "0.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build": "babel src --out-dir output"
  },
  "author": "Me",
  "license": "UNLICENSED",

  "devDependencies": {
    "babel-cli": "~6.11.4",
    "babel-preset-es2015": "^6.9.0"
  }

}

person.js

class Person {
    constructor(name) {
        this.name = name;
    }
}

.babelrc

{
  "presets": ["es2015"]
}

Debug log

0 info it worked if it ends with ok
1 verbose cli [ 'C:\\Program Files (x86)\\node.exe',
1 verbose cli   'C:\\Program Files (x86)\\node_modules\\npm\\bin\\npmcli.js',
1 verbose cli   'run',
1 verbose cli   'build' ]
2 info using npm@2.15.8
3 info using node@v4.4.7
4 verbose run-script [ 'prebuild', 'build', 'postbuild' ]
5 info prebuild Codemode@0.0.0
6 info build Test@0.0.0
7 verbose unsafe-perm in lifecycle true
8 info Test@0.0.0 Failed to exec build script
9 verbose stack Error: Test@0.0.0 build: `babel src --out-dir output`
9 verbose stack Exit status 1
9 verbose stack     at EventEmitter.<anonymous> (C:\Program Files (x86)\node_modules\npm\lib\utils\lifecycle.js:217:16)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at EventEmitter.emit (events.js:172:7)
9 verbose stack     at ChildProcess.<anonymous> (C:\Program Files (x86)\node_modules\npm\lib\utils\spawn.js:24:14)
9 verbose stack     at emitTwo (events.js:87:13)
9 verbose stack     at ChildProcess.emit (events.js:172:7)
9 verbose stack     at maybeClose (internal/child_process.js:827:16)
9 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
10 verbose pkgid Codemode@0.0.0
11 verbose cwd C:\Users\me\Dev\Test
12 error Windows_NT 6.1.7601
13 error argv "C:\\Program Files (x86)\\node.exe" "C:\\Program Files (x86)\\node_modules\\npm\\bin\\npm-cli.js" "run" "build"
14 error node v4.4.7
15 error npm  v2.15.8
16 error code ELIFECYCLE
17 error Test@0.0.0 build: `babel src --out-dir output`
17 error Exit status 1
18 error Failed at the Test@0.0.0 build script 'babel src --out-dir output'.
18 error This is most likely a problem with the Test package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error     babel src --out-dir output
18 error You can get information on how to open an issue for this project with:
18 error     npm bugs Test
18 error Or if that isn't available, you can get their info via:
18 error
18 error     npm owner ls Test
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]

I'm really not sure where this is going wrong, and can't find any posts on the error.

Thanks for your help

1 Answers1

0

Problem solved (by fluke)!

I'm still unsure what the issue was, however I have since added webpack to my project, and added a further script to run the webpack command. This worked fine, so I tried the npm run build command again and it worked (I checked and babel-cli -g was uninstalled too).

If anyone can shed any light on what went wrong, that would be great!!!

Thanks