当我像这样编写webpack.config.js文件时
module.exports = {
entry: './index.jsx',
output: {
filename: 'bundle.js'
},
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}]
}
};
在 index.jsx
中,我导入了一个名为 App
的 react
模块。
import React from 'react';
import { render } from 'react-dom';
import App from './containers/App';
let rootElement = document.getElementById('box')
render(
<App />,
rootElement
)
我发现如果在App.jsx
中将模块命名为 app,那么webpack会在index.jsx
中报错,无法找到模块App
,但是如果我在App.js
中命名为 app,它将能找到此模块并正常工作。
所以,我很困惑。在我的webpack.config.js
中,我已经写了test: /\.jsx?$/
来检查文件,但为什么命名为*.jsx
的模块会找不到呢?
module
下列出的rule
中的一个中加入以下内容:{ test: /\.jsx?$/, resolve: { extensions: [".js", ".jsx"] }, include: ... }
其中include
需要根据具体情况进行填写。 - mr rogers