【发布时间】:2019-01-14 20:16:28
【问题描述】:
我有一个存储库,其中包含多个文件夹中的多个项目或应用程序,每个文件夹都有自己的 package.json 文件和 node_modules。所有这些项目都有一个具有相同代码的文件,并且在每个项目中都是多余的。我想把它拿出来并以某种方式共享。 一种方法是使用 npm 包。在这里想其他方法。如果您有任何想法,请告诉我?
【问题讨论】:
标签: javascript node.js git
我有一个存储库,其中包含多个文件夹中的多个项目或应用程序,每个文件夹都有自己的 package.json 文件和 node_modules。所有这些项目都有一个具有相同代码的文件,并且在每个项目中都是多余的。我想把它拿出来并以某种方式共享。 一种方法是使用 npm 包。在这里想其他方法。如果您有任何想法,请告诉我?
【问题讨论】:
标签: javascript node.js git
如果项目在相同的文件夹结构上运行,您可以简单地移动共享父文件夹中的文件并从那里获取它。 如果您有 DevOps 周期,您可以将该文件复制到构建步骤中的每个文件夹中。 GitLab CI 让它变得非常简单,但它可以在 Git 中轻松完成。 然而,如果代码库不是专有的,npm 包似乎是最长期稳定和方便的解决方案。
【讨论】:
您可以为这个单个文件创建一个外部模块(也许在未来您将有更多文件在您的项目之间共享)
mkdir my-external-lib ; cd my-external-lib
npm init
您需要编辑package.json
{
"name": "my-external-lib",
"version": "0.1.0",
"description": "Library function to all my project",
"main": "index.js",
"private": true,
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "<url-path-or-your-external-library>"
},
"keywords": [],
"author": "<you>",
"license": "ISC",
"bugs": {},
"homepage": "<url-path-or-your-external-library>#readme",
"dependencies": {}
}
不能原谅你在 github 上公开你的项目
这个解决方案的问题是,每次更新外部包时都需要rm -rf node_modules; npm i。我不知道为什么npm update 不起作用。
【讨论】: