You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

相对路径正确却找不到模块?Create React App路径问题求助

Create React App中Redux模块导入路径错误排查

我正在用Create React App开发项目,项目目录结构为src下包含reducers和store两个文件夹,各自的index.js文件分别定义Redux reducer和store。

src/reducers/index.js 代码

const initialState = {
    menuOpen:false,
};

function reducer (state = initialState, action = {}) {
  switch (action.type) {
    case 'MENU_CLICKED':
      return {
       ...state,
        menuOpen: !state.menuOpen,
      };
  default:
    return state;
  }
}

export default reducer;

src/store/index.js 代码

import { createStore, applyMiddleware, compose } from 'redux';
import reducer from 'src/reducers';

//const middlewares = applyMiddleware(lister les Middlewares);

//const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;
//const enhancers = composeEnhancers(middlewares);

const store = createStore(reducer);

export default store;

执行时出现以下错误:

ERROR in ./src/store/index.js 4:0-35

Module not found: Error: Can't resolve 'src/reducers' in 'C:\Users\apiot\Desktop\NoteToMyself\src\store'

问题原因

Create React App默认的模块解析规则不支持直接以src/开头的绝对路径导入。当你在src/store/index.js里写import reducer from 'src/reducers'时,Webpack会把src/reducers当作第三方包去node_modules里查找,自然找不到本地的reducer文件。

解决办法

  1. 使用相对路径导入(最简单直接)
    把store/index.js里的导入语句改成相对路径:
import reducer from '../reducers';

因为store文件夹和reducers文件夹同属src目录,从store/index.js往上退一级就能找到reducers。

  1. 配置路径别名(适合大型项目,简化路径写法)
    如果不想写冗长的相对路径,可以通过craco(无需eject项目)或者eject后修改Webpack配置来设置路径别名:
  • 安装craco:npm install @craco/craco --save-dev
  • 在项目根目录创建craco.config.js,添加以下配置:
const path = require('path');

module.exports = {
  webpack: {
    alias: {
      '@': path.resolve(__dirname, 'src/')
    }
  }
};
  • 修改package.json里的启动脚本,把react-scripts替换成craco:
"scripts": {
  "start": "craco start",
  "build": "craco build",
  "test": "craco test"
}

之后就可以用别名导入:

import reducer from '@/reducers';

内容的提问来源于stack exchange,提问作者Rip Rip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 02:05:35