node.js - How to force Babel to perform a transformation? -


i have following files:

./client/.babelrc ./client/index.js ./server/.babelrc ./server/index.js 

client

./client/index.js code is:

import 'test'; 

./client/.babelrc is:

{     "presets": [         "es2015-webpack",         "stage-0",         "react"     ] } 

client code consumed webpack 2. webpack 2 supports es6 modules. es2015-webpack babel preset transforms code down es5, not transform es6 modules commonjs. therefore, transpiled code remains unchanged.

server

./server/index.js code is:

import './../client'; 

./server/.babelrc is:

{     "presets": [         "es2015",         "stage-0"     ] } 

node.js v5.5.0 not support es6 modules. therefore, entire code needs transpiled down es5. however, node script needs include parts of client code (e.g., config, initial state).

i try run server code using babel-node, e.g.

cd ./server babel-node ./index.js 

this produces error:

./client/index.js:1 import 'test'; ^^^^^^  syntaxerror: unexpected token  

the reason because babel-node (and babel) respect ./client/.babelrc.

how force babel use babel-plugin-transform-es2015-modules-commonjs plugin (or es2015 preset) entire code base when compiling server code?

i have tried using --no-babelrc option. ignores .babelrc in current working directory.

have been working on similar problem

i ended removing presets [.babelrc]

adding client presets via webpack [webpack.config.js]

  module: {     loaders: [       { test: /\.js$/, exclude: /node_modules/,          loader: 'babel-loader',          query: { presets: ["react", "es2015-webpack"] } }     ]   }, 

and running server presets via [babel-node]

  "scripts": {     "start": "set node_env=development; webpack --progress && babel-node --presets es2015,react modules/server.js"   }, 

Comments

Popular posts from this blog

sublimetext3 - what keyboard shortcut is to comment/uncomment for this script tag in sublime -

java - No use of nillable="0" in SOAP Webservice -

ubuntu - Laravel 5.2 quickstart guide gives Not Found Error -