导入在 webpack 中不起作用
Imports not working inside webpack
我是 webpack 的新手,很抱歉,如果我遗漏了一些非常明显的东西...
我有以下结构:
adex_js
---- app.jsx (entry point)
---- TestComponent.jsx
在app.jsx我有:
import TestComponent from './TestComponent'
我得到:
ERROR in ./js/adex_js/app.jsx
Module not found: Error: Can't resolve './TestComponent' in '.........../asset_src/js/adex_js'
有人告诉我这可能与 babel 配置有关...这是我的 .babelrc:
{
"env": {
"production": {
"plugins": [
"transform-react-remove-prop-types",
"transform-react-constant-elements"
]
},
"development": {
"sourceMaps": "inline"
},
"test": {
"plugins": [
"istanbul"
],
"sourceMaps": "inline",
"presets": [
[
"env",
{
"targets": {
"browsers": [
"last 2 versions",
"safari >= 7"
],
"node": "current"
},
"useBuiltIns": true,
"debug": true
}
],
"react",
"stage-0"
]
}
},
"plugins": [
"transform-class-properties",
"transform-runtime",
"transform-object-rest-spread",
"transform-decorators-legacy",
"syntax-dynamic-import",
"dynamic-import-node",
"react-hot-loader/babel",
[
"react-css-modules",
{
"generateScopedName": "[name]__[local]___[hash:base64:5]"
}
],
],
"presets": [
[
"env",
{
"targets": {
"browsers": [
"last 2 versions",
"safari >= 7"
],
"node": "current"
},
"modules": false,
"useBuiltIns": true,
"debug": false
}
],
"react",
"stage-0"
]
}
以及 webpack 配置中的 babel 部分:
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
plugins: [
'transform-react-jsx',
[
'react-css-modules',
{
context,
generateScopedName: '[name]__[local]___[hash:base64:5]'
}
]
]
}
知道是什么导致了这个问题吗?我没有收到任何其他错误,似乎都已安装好,导入 React 工作正常,只有从文件系统导入时才会失败...
非常欢迎任何提示!!!
在导入中使用完整的文件名:
import TestComponent from './TestComponent.jsx'
添加扩展有效,但更好的解决方案是添加:
resolve: {
extensions: ['.js', '.jsx'],
},
在我的 webpack 配置文件中,然后我不再需要在导入中添加扩展...
我是 webpack 的新手,很抱歉,如果我遗漏了一些非常明显的东西...
我有以下结构:
adex_js
---- app.jsx (entry point)
---- TestComponent.jsx
在app.jsx我有:
import TestComponent from './TestComponent'
我得到:
ERROR in ./js/adex_js/app.jsx
Module not found: Error: Can't resolve './TestComponent' in '.........../asset_src/js/adex_js'
有人告诉我这可能与 babel 配置有关...这是我的 .babelrc:
{
"env": {
"production": {
"plugins": [
"transform-react-remove-prop-types",
"transform-react-constant-elements"
]
},
"development": {
"sourceMaps": "inline"
},
"test": {
"plugins": [
"istanbul"
],
"sourceMaps": "inline",
"presets": [
[
"env",
{
"targets": {
"browsers": [
"last 2 versions",
"safari >= 7"
],
"node": "current"
},
"useBuiltIns": true,
"debug": true
}
],
"react",
"stage-0"
]
}
},
"plugins": [
"transform-class-properties",
"transform-runtime",
"transform-object-rest-spread",
"transform-decorators-legacy",
"syntax-dynamic-import",
"dynamic-import-node",
"react-hot-loader/babel",
[
"react-css-modules",
{
"generateScopedName": "[name]__[local]___[hash:base64:5]"
}
],
],
"presets": [
[
"env",
{
"targets": {
"browsers": [
"last 2 versions",
"safari >= 7"
],
"node": "current"
},
"modules": false,
"useBuiltIns": true,
"debug": false
}
],
"react",
"stage-0"
]
}
以及 webpack 配置中的 babel 部分:
{
test: /\.jsx?$/,
exclude: /(node_modules|bower_components)/,
loader: 'babel-loader',
query: {
plugins: [
'transform-react-jsx',
[
'react-css-modules',
{
context,
generateScopedName: '[name]__[local]___[hash:base64:5]'
}
]
]
}
知道是什么导致了这个问题吗?我没有收到任何其他错误,似乎都已安装好,导入 React 工作正常,只有从文件系统导入时才会失败...
非常欢迎任何提示!!!
在导入中使用完整的文件名:
import TestComponent from './TestComponent.jsx'
添加扩展有效,但更好的解决方案是添加:
resolve: {
extensions: ['.js', '.jsx'],
},
在我的 webpack 配置文件中,然后我不再需要在导入中添加扩展...