0

我是 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]'
          }
        ]
      ]
    }

知道什么可能导致问题吗?我没有收到任何其他错误,似乎都安装得很好,导入反应工作正常,只有从文件系统导入时它才会失败......

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

4

2 回答 2

1

添加扩展有效,但更好的解决方案是添加:

resolve: {
    extensions: ['.js', '.jsx'],
},

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

于 2018-04-30T12:04:33.473 回答
1

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

import TestComponent from './TestComponent.jsx'
于 2018-03-01T13:16:14.460 回答