Leo Gao Leo Gao - 6 months ago 29
React JSX Question

import a module from node_modules with babel but failed

I wrote a module with es6 and publish to the npm, I want to use it in another project, so I type like this:

import {ActionButton} from 'rcomponents'

But it didn't work:

(function (exports, require, module, __filename, __dirname) { import React fro
SyntaxError: Unexpected reserved word
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Module._extensions..js (module.js:478:10)
at Object.require.extensions.(anonymous function) [as .jsx] (D:\github\blog\
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at D:\github\blog\node_modules\rcomponents\src\index.js:3:19
at Object.<anonymous> (D:\github\blog\node_modules\rcomponents\src\index.js:

Here is my js loader configuration in webpack:

{ test: /\.jsx?$/, loader: `babel?cacheDirectory=${babelCache}` }

When I try to import a module which is not from
, babel works good. But import a module from
, babel seems not work?


See the babel docs:

NOTE: By default all requires to node_modules will be ignored. You can override this by passing an ignore regex.

Generally the expectation is that modules in node_modules will already have been transpiled ahead of time, so they are not processed by Babel. If you will not be doing that, then you need to tell it what files it can process. ignore allows that.

    // Ignore everything in node_modules except node_modules/rcomponents.
    ignore: /node_modules\/(?!rcomponents)/