无法使用 npm 从分叉的 github 存储库安装
Posted
技术标签:
【中文标题】无法使用 npm 从分叉的 github 存储库安装【英文标题】:Unable to install from forked github repo using npm 【发布时间】:2019-11-21 23:26:55 【问题描述】:我想在 Github 上 fork React Data Grid repo,进行一些更改并将其安装到我的 react 应用程序中。
我在 repo 的 package.json 中添加了名称、版本和描述属性
我尝试通过以下方式安装它 npm 安装用户名/repo_url#branch
它确实安装并构建了包,但忽略了 node_modules/react-data-grid/packages/*/ 中的 dist 和 lib 文件夹,我无法在我的代码中导入它。
我试过了
1) 在我的应用程序的 .gitignore 中评论 dist
2) 在我的应用程序的 package.json 中添加带有 dist 的 files 属性
没有任何作用。 我做错了什么?
编辑
这是遵循@Derek Nguyen 响应后的堆栈跟踪
npm install piby180/react-data-grid#piby-current
> react-data-grid@1.0.0 postinstall C:\Users\Leo\Documents\Work\demos\myapp\node_modules\react-data-grid
> lerna bootstrap --no-ci && lerna run build
lerna notice cli v3.15.0
lerna info Bootstrapping 2 packages
lerna info Installing external dependencies
lerna info Symlinking packages and binaries
lerna success Bootstrapped 2 packages
lerna notice cli v3.15.0
lerna info Executing command in 2 packages: "npm run build"
lerna ERR! npm run build exited 1 in 'react-data-grid'
lerna ERR! npm run build stdout:
> react-data-grid@7.0.0-alpha.13 build C:\Users\Leo\Documents\Work\demos\myapp\node_modules\react-data-grid\packages\react-data-grid
> tsc
error TS6053: File 'C:/Users/Leo/Documents/Work/demos/myapp/node_modules/react-data-grid/packages/react-data-grid-addons/src/index.ts' not found.
error TS6053: File 'C:/Users/Leo/Documents/Work/demos/myapp/node_modules/react-data-grid/packages/react-data-grid/src/index.ts' not found.
Found 2 errors.
lerna ERR! npm run build stderr:
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! react-data-grid@7.0.0-alpha.13 build: `tsc`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the react-data-grid@7.0.0-alpha.13 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\Leo\AppData\Roaming\npm-cache\_logs\2019-07-17T14_35_42_219Z-debug.log
lerna ERR! npm run build exited 1 in 'react-data-grid'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\chokidar\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted "os":"darwin","arch":"any" (current: "os":"win32","arch":"x64")
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.9 (node_modules\jest-haste-map\node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.9: wanted "os":"darwin","arch":"any" (current: "os":"win32","arch":"x64")
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! react-data-grid@1.0.0 postinstall: `lerna bootstrap --no-ci && lerna run build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the react-data-grid@1.0.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!
【问题讨论】:
忽略是什么意思,您能否解释一下尝试导入时抛出的错误? 我安装官方包的时候,有一个dist文件夹,里面有react-data-grid.js和react-data-grid.min.js。当我从分叉的 repo 安装时,没有这样的 dist 文件夹。我假设 npm 构建 repo 并以某种方式忽略 dist 文件夹。当我尝试导入它时,它只是说“无法导入 react-data-grid ...” 请分享您的分叉仓库的 url 和您尝试安装的分支。让我在我的电脑上试试。 github.com/piby180/react-data-grid/tree/piby-current 【参考方案1】:包中的“安装后”脚本运行lerna bootstrap
。根据the doc,它将执行以下操作:
运行时,此命令将:
npm 安装每个包的所有外部依赖项。
将所有相互依赖的 Lerna 包符号链接在一起。
npm 在所有引导程序包中运行 prepublish(除非 --ignore-prepublish 已通过)。
npm run prepare 在所有引导程序包中。
/packages 中的包没有准备或预发布脚本。您应该能够通过修改根 package.json 的 postinstall 脚本来正确构建子包:
postinstall": "lerna bootstrap --no-ci && lerna run build",
我认为应该正确构建子包。
【讨论】:
感谢您的回答。这是一些进步,但我仍然无法安装它。 Lerna 成功引导了两个包,但是我从 tsc 'File node_modules/react-data-grid/src/index.ts' not found 得到错误; '文件 node_modules/react-data-grid-addons/src/index.ts' 未找到 hhhm,我刚刚尝试通过yarn add https://github.com/piby180/react-data-grid#piby-current
安装你的 fork,遇到了一堆 tsc 编译错误——这意味着 tsc 可以看到索引文件。您可以编辑问题以添加有关新错误的更多详细信息吗?
@piby180 你安装这个包的项目,它也是在打字稿环境中吗?不过这可能无关紧要,因为 tsc 应该从最近的 node_modules 调用... hhhm以上是关于无法使用 npm 从分叉的 github 存储库安装的主要内容,如果未能解决你的问题,请参考以下文章
如何从需要构建步骤的 github 安装 npm 包,例如分叉图书馆时?
NPM 打包分叉 Git 存储库的 BUILT 版本的正确方法是啥?
从 github 安装 npm:找不到模块:无法解析“react-big-calendar”
如何在不分叉的情况下在 gitlab/github 上复制 git 存储库?