使用babel6来编译jsx文件,出现了not a function这个问题,其中,模块文件的内容如下:
export default class Test { test() { console.log("test ok!"); } }
主文件如下:
import React from 'react';import Hello from './component.jsx';import Test from './test.js'; main();function main() { Test.Test(); React.render(<Hello />, document.getElementById('app')); }
原来是调用一个component的jsx文件作为模块,但是后来谢了test.js也出错,webpack编译可以通过,但是babel编译之后的文件中main()对应的代码为:
function main() { _test2.default.Test(); _react2.default.render(_react2.default.createElement(_component2.default, null ), document.getElementById('app')); }
这里多了一个default,不知道是为什么?我的webpack.config.js中相关的部分如下:
module: { loaders: [{ test: /\.jsx?$/, exclude:/node_modules/, loader: 'babel', query: { presets:['react','es2015'] } }] }
我查看了babel升级log发现,有说对编译做改动,但是没有说export default的模块用import导入会出现这个问题,请教一下大家,有什么解决的办法吗?
相关分类