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

运行npm run storybook时出现Field 'browser'别名配置无效错误

执行npm run storybook时模块解析错误的解决方案

问题现象

执行npm run storybook时触发以下错误:

Field 'browser' doesn't contain a valid alias configuration
    resolve as module
      D:\FullStack\UI\react-uikit\node_modules\@testing-library\user-event\dist\utils\misc\node_modules doesn't exist or is not a directory  
      D:\FullStack\UI\react-uikit\node_modules\@testing-library\user-event\dist\utils\node_modules doesn't exist or is not a directory       
      D:\FullStack\UI\react-uikit\node_modules\@testing-library\user-event\dist\node_modules doesn't exist or is not a directory
      D:\FullStack\UI\react-uikit\node_modules\@testing-library\user-event\node_modules doesn't exist or is not a directory
      D:\FullStack\UI\react-uikit\node_modules\@testing-library\node_modules doesn't exist or is not a directory
      D:\FullStack\UI\react-uikit\node_modules\node_modules doesn't exist or is not a directory
      looking for modules in D:\FullStack\UI\react-uikit\node_modules
        D:\FullStack\UI\react-uikit\node_modules\@testing-library\dom doesn't exist
      D:\FullStack\UI\node_modules doesn't exist or is not a directory
      D:\FullStack\node_modules doesn't exist or is not a directory
      D:\node_modules doesn't exist or is not a directory
      looking for modules in D:\FullStack\UI\react-uikit\node_modules\react-scripts\node_modules
        D:\FullStack\UI\react-uikit\node_modules\react-scripts\node_modules\@testing-library\dom doesn't exist

WARN Broken build, fix the error above.
WARN You may need to refresh the browser.

npm start和npm run test可正常运行,仅Storybook启动失败,已尝试重新安装依赖、创建新项目均无效。

项目依赖配置(package.json)

{
  "name": "react-uikit",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^5.16.5",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",
    "@types/jest": "^27.5.2",
    "@types/node": "^16.18.13",
    "@types/react": "^18.0.28",
    "@types/react-dom": "^18.0.11",
    "react": "^18.2.0",
    "react-dom": "^18.2.0",
    "react-scripts": "5.0.1",
    "styled-components": "^5.3.6",
    "typescript": "^4.9.5",
    "web-vitals": "^2.1.4"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "storybook": "start-storybook -p 6006 -s public",
    "build-storybook": "build-storybook -s public"
  },
  "eslintConfig": {
    "extends": [
      "react-app",
      "react-app/jest"
    ],
    "overrides": [
      {
        "files": [
          "**/*.stories.*"
        ],
        "rules": {
          "import/no-anonymous-default-export": "off"
        }
      }
    ]
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@storybook/addon-actions": "^6.5.16",
    "@storybook/addon-essentials": "^6.5.16",
    "@storybook/addon-interactions": "^6.5.16",
    "@storybook/addon-links": "^6.5.16",
    "@storybook/builder-webpack5": "^6.5.16",
    "@storybook/manager-webpack5": "^6.5.16",
    "@storybook/node-logger": "^6.5.16",
    "@storybook/preset-create-react-app": "^4.1.2",
    "@storybook/react": "^6.5.16",
    "@storybook/testing-library": "^0.0.13",
    "babel-plugin-named-exports-order": "^0.0.2",
    "jest": "^29.4.3",
    "prop-types": "^15.8.1",
    "webpack": "^5.75.0"
  }
}

解决方法

1. 手动安装@testing-library/dom

错误提示找不到@testing-library/dom,虽为@testing-library/user-event的间接依赖,但Storybook环境可能未正确识别,手动安装该包:

npm install @testing-library/dom --save-dev

2. 调整Storybook的Webpack配置

在项目根目录创建或修改.storybook/main.js,添加模块解析规则,确保Webpack能正确定位@testing-library相关包:

const path = require('path');

module.exports = {
  stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
  addons: [
    "@storybook/addon-links",
    "@storybook/addon-actions",
    "@storybook/addon-essentials",
    "@storybook/addon-interactions",
    "@storybook/preset-create-react-app",
  ],
  framework: "@storybook/react",
  core: {
    builder: "@storybook/builder-webpack5",
  },
  webpackFinal: async (config) => {
    config.resolve.modules = [
      ...(config.resolve.modules || []),
      "node_modules",
    ];
    config.resolve.alias = {
      ...(config.resolve.alias || {}),
      "@testing-library": path.resolve(__dirname, "../node_modules/@testing-library"),
    };
    return config;
  },
};

3. 降级@testing-library/user-event版本

当前使用的@testing-library/user-event@13.5.0可能与Storybook v6.5.x存在兼容性问题,尝试降级到稳定版本:

npm install @testing-library/user-event@14.4.3 --save-dev

4. 清理缓存并重新安装依赖

执行以下命令清理缓存、删除旧依赖文件后重新安装:

npm cache clean --force
rm -rf node_modules package-lock.json
npm install

内容的提问来源于stack exchange,提问作者Dev gobind Ganguly

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 09:15:27