将库同级文件夹容器用于共享包
Using a library sibling folder container for shared packages
我在单声道 git 存储库中有很多应用程序。我想在我的应用程序之间共享一些库。
这是我的目录结构:
.
├── libs
│ └── messages
| ├── package.json
| ├── src
| ├── tsconfig.json
| └── ...all other good things for a library
├── main
│ ├── config
│ ├── dist
│ ├── node_modules
│ ├── package.json
│ ├── package-lock.json
│ ├── src
│ └── tsconfig.json
├── README.md
└── server
├── main.ts
├── node_modules
├── package.json
├── package-lock.json
├── setupEnvVars.js
├── src
└── tsconfig.json
我想将库 "message" 添加到我的项目 "main" 所以我尝试以这种方式添加它:
{
"name": "me",
"version": "1.0.0",
"main": "index.js",
"private": true,
"dependencies": {
"@me/messages": "../libs/messages/"
}
}
我卡住了,因为它不起作用(但也不会抛出错误)。你能帮助我吗?谢谢!
我需要更多地了解每个 package.json 文件的内容和整个项目,但这里有一些元素可能会帮助您获得一个 goo 结构,以完成您为自己设定的目标做。
如果你真的想走正确的 monorepo 方式,你可能想看看 https://github.com/lerna/lerna 这对 Node 8 及更高版本来说已经足够好了(例如文件依赖的自动符号链接,这是在开发过程中很有用)。
在 TypeScript 中解决此问题的另一种方法是使用路径:
tsconfig.json
{
"compilerOptions": {
// path
"baseUrl": ".",
"paths": {
"@lib/*": ["./*"],
"@shared/*": ["../shared/*"]
}
}
但是,根据您构建和 运行 项目的方式,路径有时无法正确处理。如果您 运行 您的项目使用 ts-node
,您可能需要使用 tsconfig-paths
,或者如果您使用 TypeScript 作为 webpack 项目的一部分,则可能需要 tsconfig-paths-webpack-plugin
。
我在单声道 git 存储库中有很多应用程序。我想在我的应用程序之间共享一些库。
这是我的目录结构:
.
├── libs
│ └── messages
| ├── package.json
| ├── src
| ├── tsconfig.json
| └── ...all other good things for a library
├── main
│ ├── config
│ ├── dist
│ ├── node_modules
│ ├── package.json
│ ├── package-lock.json
│ ├── src
│ └── tsconfig.json
├── README.md
└── server
├── main.ts
├── node_modules
├── package.json
├── package-lock.json
├── setupEnvVars.js
├── src
└── tsconfig.json
我想将库 "message" 添加到我的项目 "main" 所以我尝试以这种方式添加它:
{
"name": "me",
"version": "1.0.0",
"main": "index.js",
"private": true,
"dependencies": {
"@me/messages": "../libs/messages/"
}
}
我卡住了,因为它不起作用(但也不会抛出错误)。你能帮助我吗?谢谢!
我需要更多地了解每个 package.json 文件的内容和整个项目,但这里有一些元素可能会帮助您获得一个 goo 结构,以完成您为自己设定的目标做。
如果你真的想走正确的 monorepo 方式,你可能想看看 https://github.com/lerna/lerna 这对 Node 8 及更高版本来说已经足够好了(例如文件依赖的自动符号链接,这是在开发过程中很有用)。
在 TypeScript 中解决此问题的另一种方法是使用路径:
tsconfig.json
{
"compilerOptions": {
// path
"baseUrl": ".",
"paths": {
"@lib/*": ["./*"],
"@shared/*": ["../shared/*"]
}
}
但是,根据您构建和 运行 项目的方式,路径有时无法正确处理。如果您 运行 您的项目使用 ts-node
,您可能需要使用 tsconfig-paths
,或者如果您使用 TypeScript 作为 webpack 项目的一部分,则可能需要 tsconfig-paths-webpack-plugin
。