首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >进口不在webpack内部工作

进口不在webpack内部工作
EN

Stack Overflow用户
提问于 2018-03-01 21:08:36
回答 2查看 817关注 0票数 0

我是新来的,所以很抱歉我错过了一些非常明显的东西…

我有以下结构:

代码语言:javascript
复制
adex_js
   ---- app.jsx (entry point)
   ---- TestComponent.jsx

在app.jsx中,我有:

代码语言:javascript
复制
import TestComponent from './TestComponent'

我得到了:

代码语言:javascript
复制
ERROR in ./js/adex_js/app.jsx
Module not found: Error: Can't resolve './TestComponent' in '.........../asset_src/js/adex_js'

有人告诉我这可能与巴别塔的配置有关...这是我的.babelrc:

代码语言:javascript
复制
{
   "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配置中的巴别塔部分:

代码语言:javascript
复制
 {
    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工作正常,只有从文件系统导入时才会失败……

任何提示都将非常受欢迎!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-30 20:04:33

添加扩展是可行的,但更好的解决方案是添加:

代码语言:javascript
复制
resolve: {
    extensions: ['.js', '.jsx'],
},

在我的webpack配置文件中,我不再需要在导入中添加扩展名了…

票数 1
EN

Stack Overflow用户

发布于 2018-03-01 21:16:14

在导入中使用完整的文件名:

代码语言:javascript
复制
import TestComponent from './TestComponent.jsx'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49050392

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档