当构建二进制文件包含在 gitignore 中时构建分布式 Vue CLI 项目?
Building a distributed Vue CLI project when the build binary is included in gitignore?
Vue 新手,使用@vue/cli 4.4.6.
我使用 Vue CLI 创建了我的项目,并注意到在 node_modules/.bin
目录(Vue CLI 创建的)下,有一个名为 vue-cli-service
的 vue-cli-service
似乎 是 Vue CLI 构建工具。
这对我来说有点奇怪,来自主要使用外部构建工具(如 Gradle、Maven 和 SBT)的“后端”背景,将构建工具嵌入到项目中!我本以为您会下载 vue-cli-service
作为命令行工具(就像我使用 vue-cli
所做的那样),然后将其指向您要构建的项目。但这就像每个 Java 项目都包含 Gradle 的副本或其中包含 Maven 本身!这真的是一个正确形成的 Vue 项目的意图,还是我搞砸了什么?
我问是因为 vue create hello-world
创建了一个 .gitignore
,其中专门列出了 node_modules
...
...所以这些不是相互排斥的约定吗?
vue create hello-world
创建一个包含 node_modules/.bin/vue-cli-service
的“原始”(未构建)项目,这似乎是构建它的方式。但它还在 .gitignore
中提到了 node_modules
- 所以开发人员 #1 创建了一个新项目并能够构建它,然后他们将其推送到 git 存储库。由于
node_modules
列在 .gitignore
中,构建工具未包含在推送中
- 开发人员 #2 将 repo 拉下来以处理新的功能分支。但是哎呀。由于
node_modules/.bin/vue-cli-service
被忽略,他们在本地分支中没有它,因此他们无法构建它。
我知道我一定是漏掉了什么,我只是不知道是什么。有人有什么想法吗?
在 Node 项目中,构建实用程序在项目的 package.json
中是 specified as devDependencies
是很常见的,这是可以接受的,因为实用程序本身通常相对较小并且安装起来很快。只有 Node 和包管理器(npm
或 yarn
)应该预装在开发者机器上。
开发人员需要将这些 package.json
依赖项安装到 bootstrap 开发(如果 package-lock.json
存在,则使用 npm install
或 npm ci
),类似于先决条件 Gradle/Maven 需要安装构建插件 post-clone 才能成功构建项目。 package.json
中指定的每个依赖项的版本字符串(始终提交给源代码控制)确保所有开发人员和 CI 使用相同版本的依赖项。
Vue 新手,使用@vue/cli 4.4.6.
我使用 Vue CLI 创建了我的项目,并注意到在 node_modules/.bin
目录(Vue CLI 创建的)下,有一个名为 vue-cli-service
的 vue-cli-service
似乎 是 Vue CLI 构建工具。
这对我来说有点奇怪,来自主要使用外部构建工具(如 Gradle、Maven 和 SBT)的“后端”背景,将构建工具嵌入到项目中!我本以为您会下载 vue-cli-service
作为命令行工具(就像我使用 vue-cli
所做的那样),然后将其指向您要构建的项目。但这就像每个 Java 项目都包含 Gradle 的副本或其中包含 Maven 本身!这真的是一个正确形成的 Vue 项目的意图,还是我搞砸了什么?
我问是因为 vue create hello-world
创建了一个 .gitignore
,其中专门列出了 node_modules
...
...所以这些不是相互排斥的约定吗?
vue create hello-world
创建一个包含node_modules/.bin/vue-cli-service
的“原始”(未构建)项目,这似乎是构建它的方式。但它还在.gitignore
中提到了 - 所以开发人员 #1 创建了一个新项目并能够构建它,然后他们将其推送到 git 存储库。由于
node_modules
列在.gitignore
中,构建工具未包含在推送中 - 开发人员 #2 将 repo 拉下来以处理新的功能分支。但是哎呀。由于
node_modules/.bin/vue-cli-service
被忽略,他们在本地分支中没有它,因此他们无法构建它。
node_modules
我知道我一定是漏掉了什么,我只是不知道是什么。有人有什么想法吗?
在 Node 项目中,构建实用程序在项目的 package.json
中是 specified as devDependencies
是很常见的,这是可以接受的,因为实用程序本身通常相对较小并且安装起来很快。只有 Node 和包管理器(npm
或 yarn
)应该预装在开发者机器上。
开发人员需要将这些 package.json
依赖项安装到 bootstrap 开发(如果 package-lock.json
存在,则使用 npm install
或 npm ci
),类似于先决条件 Gradle/Maven 需要安装构建插件 post-clone 才能成功构建项目。 package.json
中指定的每个依赖项的版本字符串(始终提交给源代码控制)确保所有开发人员和 CI 使用相同版本的依赖项。