【问题标题】:Pushing create-react-app to github node_modules folder has not been copied将 create-react-app 推送到 github node_modules 文件夹尚未复制
【发布时间】:2019-03-19 23:38:37
【问题描述】:
我通过在 node.js 命令中运行 npx create-react-app my-app 创建了一个新文件夹 my-app。创建文件夹后,我想将整个内容上传到我的 github 帐户中的 repo,所以我打开 git bash 并运行命令将所有文件和文件夹推送到我创建的新 repo。更新存储库后,我发现所有文件都是 node_modules 文件夹的副本。我实际上尝试在 git bash 命令窗口中运行 npx create-react-app 命令,但失败了。所以我必须先在 node.js 中执行,然后在 git bash 中运行命令。此外,repo 是在没有自述文件的情况下创建的。我在这里做错了吗?为什么文件夹被留下了。谁能帮忙。
【问题讨论】:
标签:
node.js
reactjs
git
github
【解决方案1】:
create-react-app 带有一个名为 .gitignore 的文件。此文件确保不会将不必要的文件提交给 git。这就是你的 node_modules 没有被提交并推送到 github 的原因。
- node_modules 包含在 .gitignore 中的主要原因是不需要将文件推送到 github。
- 您可以随时从项目的 package.json 文件中获取 node_modules 文件夹。
- 第二个原因是 node_modules 文件夹很大。将其推送到 github 是不利的。
如果你想从 package.json 文件中获取 node_modules 文件夹。你
只需要从项目的根目录运行以下命令
此 package.json 存在时的目录
如果使用纱线 -
$ yarn install
如果使用 npm -
$ npm install
【解决方案2】:
这并没有错,create-react-app 有很多功能,其中之一就是自动创建 .gitignore 文件。如果你检查你的工作目录,在根目录下就有那个文件。
基本上这个文件的作用是告诉 git 跟踪什么和忽略什么,完全忽略 node_modules 文件夹是很常见的,因为当你克隆你的 repo 时,你只需要你的 package.json 来 npm 安装你的依赖项,所以绝对不需要上传大量数据(node_modules 可能会很重)。
gitignore docs
【解决方案3】:
这是因为 create-react-app 是自举的并且带有文件.gitignore。
其中
node_modules 被忽略
为什么它们会被忽略,因为它们是您可以随时使用基于 package.json 文件的npm install 安装的库。
在 package.json 中有 dependencies 的部分,即你的 node_modules。和npm install 将使它们可用。
"dependencies": {
"bootstrap": "^4.1.3",
"fullcalendar-reactwrapper": "^1.0.7",
"moment": "^2.22.2",
"react": "^16.5.2",
"react-date-picker": "^7.0.0",
}
Git - Ignore node_modules folder everywhere
【解决方案4】:
/node_modules 文件夹位于由 create-react-app 创建的 .gitignore 文件中。
如果您从 .gitignore 文件夹中删除该条目,您应该能够提交 node_modules。