从 github 安装 npm:找不到模块:无法解析“react-big-calendar”

Posted

技术标签:

【中文标题】从 github 安装 npm:找不到模块:无法解析“react-big-calendar”【英文标题】:npm install from github: Module not found: Can't resolve 'react-big-calendar' 【发布时间】:2019-07-01 07:53:03 【问题描述】:

我不得不对 react-big-calendar 模块进行一些更改,所以我在 github 上分叉了项目,进行了修改并推送。然后我用这个命令安装新包:

npm install https://github.com/wafa-yahyaoui/react-big-calendar/tarball/master --save

包在 package.json 的依赖关系中计算出来:

"dependencies": 
"@babel/runtime": "7.0.0-beta.55",
"@fortawesome/fontawesome-svg-core": "^1.2.10",
"@fortawesome/free-solid-svg-icons": "^5.6.1",
"@fortawesome/react-fontawesome": "^0.1.3",
"@material-ui/core": "^3.6.2",
"@material-ui/icons": "^2.0.3",
"@types/googlemaps": "3.30.11",
"@types/markerclustererplus": "2.1.33",
"ajv": "6.5.2",
"axios": "^0.18.0",
"bootstrap": "^4.1.3",
"chartist": "^0.11.0",
"classnames": "2.2.6",
"emotion": "^10.0.5",
"enhanced-resolve": "^3.4.1",
"globalize": "^1.4.0",
"history": "^4.7.2",
"iban": "0.0.11",
"jwt-decode": "^2.2.0",
"moment": "2.22.2",
"perfect-scrollbar": "1.4.0",
"react": "^16.6.3",
"react-big-calendar": "https://github.com/wafa-yahyaoui/react-big-calendar/tarball/master",
"react-bootstrap-sweetalert": "^4.4.1",
"react-chartist": "^0.13.1",
"react-datetime": "^2.16.3",
"react-dom": "^16.6.3",
"react-facebook-pixel": "^0.1.2",
"react-ga": "^2.5.6",
"react-google-maps": "^9.4.5",
"react-jvectormap": "0.0.3",
"react-nouislider": "2.0.1",
"react-redux": "^5.1.1",
"react-router": "4.3.1",
"react-router-dom": "^4.3.1",
"react-router-redux": "^5.0.0-alpha.9",
"react-scripts": "1.1.4",
"react-spinners": "^0.4.7",
"react-swipeable-views": "0.12.15",
"react-table": "6.8.6",
"react-tagsinput": "3.19.0",
"react-transition-group": "^1.2.1",
"reactstrap": "^6.5.0",
"redux": "^4.0.1",
"redux-api-middleware": "^2.3.0",
"redux-persist": "^5.10.0",
"redux-persist-transform-filter": "0.0.18",
"redux-thunk": "^2.3.0",
"universal-cookie": "^3.0.7"

我删除了 node_modules 文件夹,运行 npm install 但在运行 npm start 时出现此错误:

./src/containers/apartments/calendar.js    
Module not found: Can't resolve 'react-big-calendar' in 
'/Users/wafayahyaoui/homereact/src/containers/apartments'

calendar.js 文件中的导入如下所示:

import React from "react";
import BigCalendar from "react-big-calendar";

如果导入错误,可能是什么原因?谢谢你

【问题讨论】:

你修改过的包里的包名是不是改了? 不,我没有改变它 如果您的应用根目录中有package-lock.jsonyarn-lock.json 文件,那么npm installyarn install 可能会忽略您尝试安装fork,如果您之前已经安装了true版本。 【参考方案1】:

使用命令:

npm i react-big-calendar

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案2】:

我遇到了类似的问题,所以也许对某人有帮助。 package.json 中的 main 属性指向无法访问的构建文件,因此我添加了一个 prepare 脚本以在发布包之前运行构建。

"main": "dist/index.js",
"scripts": 
  "prepare": "npm run build"

【讨论】:

【参考方案3】:

我遇到了同样的问题。花了 3-4 个小时才弄清楚是什么问题。这是一个解决方案。

运行命令 - npm run build - 构建 dist 和 lib 文件夹。 从 .gitignore 文件中删除 dist 和 lib。 推送您的代码。

如果你仔细看 package-lock.json,有一行 "main": "lib/index.js" 指向 lib 文件夹。但是当你 fork react-big-calendar repo 时,这个 repo 中没有 lib 文件夹,只有 src 文件夹。

因此,您必须首先构建代码并将其推送到您的存储库中。

【讨论】:

有用的见解? 另外,当您在项目中导入模块时,您可能需要在路径中使用 dist 目录。就像 import moduleName from "module-name/dist"; 帮助了我。 非常感谢,你救了我的命。几个小时以来,我一直在努力弄清楚为什么在 aws codebuild 上找不到我的模块,尽管它是在我的本地成功构建的。将 dist 文件夹推送到我的 github 仓库后,我的 aws codebuild 就成功完成了。 你能澄清一下:我们是从 node_modules/react-big-calendar 运行这个吗?

以上是关于从 github 安装 npm:找不到模块:无法解析“react-big-calendar”的主要内容,如果未能解决你的问题,请参考以下文章

NPM 全局安装“找不到模块”

无法为 angular-phonecat 教程安装 npm:找不到模块“update-notifier”

由于以下错误,无法运行任何 npm 命令 - 错误:找不到模块“semver”

我无法让 npm 模块与 require 一起工作?

通过 npm 安装的引导程序引发有关“错误:找不到模块 'jQuery'”的错误

安装 $npm 后,出现错误:找不到模块 '../lib/utils/unsupported.js'