vue 运行项目 报错:To install them, you can run: npm install --save core-js/modules....

2,964 阅读4分钟

运行项目 报错: To install them, you can run: npm install --save core-js/modules/es.array-buffer.detached.js core-js/modules/es.array-buffer.transfer-to-fixed-length.js core-js/modules/es.array-buffer.transfer.js core-js/modules/es.array.push.js core-js/modules/es.error.cause.js core-js/modules/es.number.to-exponential.js core-js/modules/es.object.proto.js core-js/modules/es.regexp.dot-all.js core-js/modules/es.typed-array.at.js core-js/modules/es.typed-array.find-last-index.js core-js/modules/es.typed-array.find-last.js core-js/modules/es.typed-array.to-reversed.js core-js/modules/es.typed-array.to-sorted.js core-js/modules/es.typed-array.with.js core-js/modules/web.self.js core-js/modules/web.url-search-params.delete.js core-js/modules/web.url-search-params.has.js core-js/modules/web.url-search-params.size.js

这个错误是因为项目中依赖的某些模块需要使用 core-js 中的特定 polyfill 模块,而这些模块当前并未被安装或者版本不兼容。

core-js 是一个 JavaScript polyfill 库,用于支持旧浏览器或环境的现代 JavaScript 特性。你的项目或项目的依赖项可能正在使用 core-js,并且需要这些特定的模块。

解决方法

方法 1: 安装缺失的 core-js 模块

你可以按照错误提示的方式,手动安装这些缺失的 core-js 模块。运行以下命令:

npm install --save core-js/modules/es.array-buffer.detached.js core-js/modules/es.array-buffer.transfer-to-fixed-length.js core-js/modules/es.array-buffer.transfer.js core-js/modules/es.array.push.js core-js/modules/es.error.cause.js core-js/modules/es.number.to-exponential.js core-js/modules/es.object.proto.js core-js/modules/es.regexp.dot-all.js core-js/modules/es.typed-array.at.js core-js/modules/es.typed-array.find-last-index.js core-js/modules/es.typed-array.find-last.js core-js/modules/es.typed-array.to-reversed.js core-js/modules/es.typed-array.to-sorted.js core-js/modules/es.typed-array.with.js core-js/modules/web.self.js core-js/modules/web.url-search-params.delete.js core-js/modules/web.url-search-params.has.js core-js/modules/web.url-search-params.size.js

方法 2: 升级或重新安装 core-js

这些模块可能是由于 core-js 版本不匹配导致的。如果你的项目使用的是较老版本的 core-js,可以尝试将 core-js 升级到最新版本:

  1. 检查 core-js 当前版本

    查看当前 core-js 的版本:

    npm list core-js
    
  2. 升级 core-js

    如果版本较旧,可以升级 core-js 到最新版本:

    npm install core-js@latest --save
    
  3. 重建项目

    删除 node_modules 和锁定文件(package-lock.jsonyarn.lock),然后重新安装所有依赖:

    rm -rf node_modules package-lock.json
    npm install
    

方法 3: 确认 Babel 配置 (如果适用)

如果你的项目使用 Babel 进行 JavaScript 转译,可能需要更新 Babel 配置,以确保正确的 core-js 版本和 preset-env 设置。

  1. 检查 Babel 配置 (babel.config.js.babelrc): 确保 @babel/preset-envcorejs 选项正确设置,例如:

    {
      "presets": [
        [
          "@babel/preset-env",
          {
            "useBuiltIns": "usage",
            "corejs": 3
          }
        ]
      ]
    }
    
  2. 安装 @babel/preset-envcore-js

    如果未安装或版本不兼容,请重新安装:

    npm install @babel/preset-env core-js@3 --save-dev
    
  3. 重新构建项目

    运行项目构建命令,确保一切正常。

总结

  • 优先尝试方法 1,按提示安装缺少的模块。
  • 如果问题依然存在,尝试 方法 2 升级 core-js
  • 如果你使用 Babel,确认 Babel 配置正确(方法 3)。

通过这些方法,你应该能够解决这些缺失的 core-js 模块错误。

报错: $ npm install @babel/preset-env core-js@3 --save-dev npm WARN idealTree Removing dependencies.core-js in favor of devDependencies.core-js npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! While resolving: @vue-office/docx@1.6.2 npm ERR! Found: vue-demi@0.13.11 npm ERR! node_modules/vue-demi npm ERR! vue-demi@"0.13.11" from the root project npm ERR! npm ERR! Could not resolve dependency: npm ERR! peer vue-demi@"^0.14.6" from @vue-office/docx@1.6.2 npm ERR! node_modules/@vue-office/docx npm ERR! @vue-office/docx@"^1.6.0" from the root project npm ERR! npm ERR! Conflicting peer dependency: vue-demi@0.14.10 npm ERR! node_modules/vue-demi npm ERR! peer vue-demi@"^0.14.6" from @vue-office/docx@1.6.2 npm ERR! node_modules/@vue-office/docx npm ERR! @vue-office/docx@"^1.6.0" from the root project npm ERR! npm ERR! Fix the upstream dependency conflict, or retry npm ERR! this command with --force, or --legacy-peer-deps npm ERR! to accept an incorrect (and potentially broken) dependency resolution. npm ERR! npm ERR! See C:\Users\DSY\AppData\Local\npm-cache\eresolve-report.txt for a full report. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\DSY\AppData\Local\npm-cache_logs\2024-08-28T04_44_39_864Z-debug-0.log

你遇到的错误是由于依赖冲突引起的,特别是 vue-demi 版本冲突。项目中使用的 @vue-office/docx 需要 vue-demi@^0.14.6,但是当前项目安装的是 vue-demi@0.13.11。这导致了 npm 解析依赖时无法自动解决冲突。

解决方法

方法 1: 使用 --legacy-peer-deps

这个选项会告诉 npm 忽略 peerDependencies 的冲突,并继续安装所有依赖。

运行以下命令来安装需要的依赖:

npm install @babel/preset-env core-js@3 --save-dev --legacy-peer-deps

方法 2: 强制安装 vue-demi 的兼容版本

你可以安装一个满足所有依赖项要求的 vue-demi 版本(在本例中为 0.14.10)。首先,移除当前的 vue-demi 版本,然后安装兼容的版本:

  1. 卸载当前的 vue-demi

    npm uninstall vue-demi
    
  2. 安装兼容的 vue-demi 版本

    npm install vue-demi@0.14.10
    
  3. 安装 @babel/preset-envcore-js

    npm install @babel/preset-env core-js@3 --save-dev
    

方法 3: 更新 @vue-office/docx 依赖版本

如果 @vue-office/docx 的较新版本支持当前 vue-demi 版本,考虑更新 @vue-office/docx 到最新版本。

  1. 检查可用的 @vue-office/docx 版本

    npm show @vue-office/docx versions
    
  2. 安装最新的 @vue-office/docx

    npm install @vue-office/docx@latest
    
  3. 尝试重新安装依赖

    npm install @babel/preset-env core-js@3 --save-dev
    

方法 4: 使用 pnpmyarn

有时,使用不同的包管理器会有更好的依赖解析处理。例如,你可以尝试使用 pnpmyarn 来替代 npm

  1. 安装 pnpm(如果未安装):

    npm install -g pnpm
    
  2. 使用 pnpm 安装依赖

    pnpm install @babel/preset-env core-js@3 --save-dev
    

或者,使用 yarn

yarn add @babel/preset-env core-js@3 --dev

总结

  • 最简单的方法 是使用 --legacy-peer-deps 选项来忽略依赖冲突。
  • 如果你想保持依赖的严格一致性,使用 方法 2方法 3
  • 如果问题依然存在,尝试使用不同的包管理器(pnpmyarn)。