2017-04-09 67 views
0

我在用Babel和React配置Webpack时遇到了问题。您可能需要一个合适的加载器来处理这种文件类型。 Webpack和Babel

这里是我的配置文件 -

var webpack = require('webpack'); 
var path = require('path'); 

var BUILD_DIR = path.resolve(__dirname, 'src/client/public'); 
var APP_DIR = path.resolve(__dirname, './app/javascripts'); 

var config = { 
    entry: APP_DIR + '/app1.jsx', 
    output: { 
    path: BUILD_DIR, 
    filename: 'bundle.js' 
    } 
}; 

module : { 
    loaders : [ 
     { 
     test : /\.jsx?/, 
     include : APP_DIR, 
      xclude: /node_modules/, 
     loader : 'babel-loader', 
      query: { 
     presets: ['es2015'] 
    } 
     } 
    ] 
    } 

module.exports = config; 

这里是我的babelrc文件

{ 
    "presets" : ["es2015", "react"] 
} 

我试图在 here描述,但在标题中提到的仍然得到配置错误的步骤。

+0

指定预置我不知道这是否会解决你的问题,你不需要使用.babelrc文件,但这里是一个提示,你应该将你的babel插件从es2015切换到env,这是现在推荐的方法。 –

回答

0

尝试使用这个简单的代码行,而且,您应该将您的babel插件从es2015 (babel-preset-es2015)切换到env (babel-preset-env),这是现在推荐的方法。

module: { 
    loaders: [ 
     { test: /\.jsx?$/, loader: 'babel-loader', exclude: /node_modules/ } 
    ] 
    } 

而这应该是你的.babelrc文件。

{ 
    presets: [ 'env', 'react' ] 
} 

这应该有效。

+0

感谢您的回复。进行更改后,我收到相同的错误。 –

+0

您是否试图要求扩展名未在模块加载程序中指定的文件,如.scss或其他任何文件? –

+0

不,我不想要求在模块加载器中未指定扩展名的文件。 –

0

尝试指定测试表达\.jsx?$和如果你在loaders

module : { 
    loaders : [ 
     { 
     test : /\.jsx?$/, 
     include : APP_DIR, 
     exclude: /node_modules/, 
     loader : 'babel-loader', 
      query: { 
       presets: ['es2015', 'react', 'stage-0'] 
     } 
     } 
    ] 
    } 
+0

同样的错误,抱歉! –