javascript - Webpack Babel loading error - Uncaught SyntaxError: Unexpected token import -


this question has answer here:

i'm new webpack , running problem following this tutorial.

it seems webpack.config.js isn't setting babel-loader correctly i'm not sure.in console see following error:

bundle.js:49 uncaught syntaxerror: unexpected token import 

which refers line import sortby 'lodash/collection/sortby'; of index.js. assume it's babel transpiling problem(not allowing import syntax of es6?)

here complete index.js file

import sortby 'lodash/collection/sortby'; import {users} './users'; import {user} './user';  sortby(users, 'name')     .map(user => {         return new user(user.name, user.age);     })     .foreach(user => {         console.log(user.display);     }); 

and webpack.config.js looks this:

module.exports = {     entry: './src/index.js',     output: {         path: './public/',                 filename: 'bundle.js'     },     devserver: {         contentbase: './public/'     },     module: {         loaders: [             {test: /\.js$/, exclude: /node_modules/, loader: 'babel'}         ]     } }  

i've searched through other questions looked relate problem here , here googling around haven't found solution or reason why i'm getting error yet. maybe tutorial out of date.any guidance how fix issue appreciated!

update

the specific babel loading error resolved following steps outlined in answer posted below alexandre thebaldi.

however, new error occurred - module not found: error: cannot resolve module 'lodash/collection/sortby'

if working through this tutorial , encounter error, caused incorrect path in index.js,specifically fact lodash/collections directory seems no longer exist. managed resolve second error changing path lodash/sortby.

note

be sure first check lodash installed in node_modules , path correct manually before changing it.

first, make sure have installed babel core , loader using:

$ npm install --save-dev babel-loader babel-core

so correct loader babel-loader , not babel. config should be:

module: {   loaders: [     { test: /\.js$/, exclude: /node_modules/, loader: "babel-loader" }   ] } 

actually need tell babel transform code.

pre-6.x, babel enabled transformations default. however, babel 6.x not ship transformations enabled. need explicitly tell transformations run. simplest way using preset, such es2015 preset. can install with.

$ npm install babel-preset-es2015 --save-dev 

after preset installed have enable it.

create .babelrc config in project root , enable plugins.

assuming have installed es2015 preset, in order enable have define in .babelrc file, this:

{   "presets": ["es2015"] } 

details in babel setup page.


Comments

Popular posts from this blog

javascript - Slick Slider width recalculation -

jsf - PrimeFaces Datatable - What is f:facet actually doing? -

angular2 services - Angular 2 RC 4 Http post not firing -