thlorenz / browserify-shim

📩 Makes CommonJS incompatible files browserifyable.
MIT License
933 stars 87 forks source link

Babel + Browserify-Shim error with no code #181

Closed untoldone closed 9 years ago

untoldone commented 9 years ago

The following package.json

{
  "name": "browserify-debug",
  "version": "0.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "browserify": {
    "transform": [
      [
        "babelify",
        "browserify-shim"
      ]
    ]
  },
  "dependencies": {
    "babelify": "^6.1.3",
    "browserify": "^11.0.0",
    "browserify-shim": "^3.8.10"
  }
}

where index.js is an empty file

produces the following:

ReferenceError: [BABEL] /Users/untoldone/Source/browserify-debug/index.js: Unknown option: direct.0 while parsing file: /Users/untoldone/Source/browserify-debug/index.js
    at Logger.error (/Users/untoldone/Source/browserify-debug/node_modules/babelify/node_modules/babel-core/lib/transformation/file/logger.js:58:11)
    at OptionManager.mergeOptions (/Users/untoldone/Source/browserify-debug/node_modules/babelify/node_modules/babel-core/lib/transformation/file/options/option-manager.js:124:29)
    at OptionManager.init (/Users/untoldone/Source/browserify-debug/node_modules/babelify/node_modules/babel-core/lib/transformation/file/options/option-manager.js:216:10)
    at File.initOptions (/Users/untoldone/Source/browserify-debug/node_modules/babelify/node_modules/babel-core/lib/transformation/file/index.js:146:75)
    at new File (/Users/untoldone/Source/browserify-debug/node_modules/babelify/node_modules/babel-core/lib/transformation/file/index.js:133:22)
    at Pipeline.transform (/Users/untoldone/Source/browserify-debug/node_modules/babelify/node_modules/babel-core/lib/transformation/pipeline.js:164:16)
    at DestroyableTransform.end [as _flush] (/Users/untoldone/Source/browserify-debug/node_modules/babelify/index.js:45:25)
    at DestroyableTransform.<anonymous> (/Users/untoldone/Source/browserify-debug/node_modules/babelify/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:135:12)
    at DestroyableTransform.g (events.js:180:16)
    at DestroyableTransform.EventEmitter.emit (events.js:117:20)

when running ./node_modules/browserify/bin/cmd.js . -o bundle.js

If browserify-shim is removed from the transform, the issue is removed.

I'm running node v0.10.26

bendrucker commented 9 years ago

Please create a repo we can run via git clone ${repo} && npm install && npm test to reproduce this

untoldone commented 9 years ago

Here you go:

git clone https://github.com/untoldone/browserify-debug.git && cd browserify-debug && npm install && npm test

Also reproduced with node v0.12.7

bendrucker commented 9 years ago

Sorry, no ideas from me

untoldone commented 9 years ago

wow ... my bad here ... notice the double wrapped array passed to transform. Probably a copy-paste error at some point.

Changing the transform section from:

    "transform": [
      [
        "babelify",
        "browserify-shim"
      ]
    ]

to:

    "transform": [
        "babelify",
        "browserify-shim"
    ]

fixed this.

thlorenz commented 9 years ago

@untoldone wow that was hard to catch. Maybe browserify could be improved to detect these invalid configurations. Worth filing an issue over there to ask and possibly provide a PR ;)