簡體   English   中英

NodeJs 在相對路徑依賴模塊中配置 peerDependencies

[英]NodeJs configuring peerDependencies in relative path dependency module

我有一個庫 package (遵循AWS 指導

"devDependencies": {
    "aws-cdk-lib": "2.1.0"
  },
"peerDependencies": {
    "aws-cdk-lib": "^2.1.0"
  },

它與我的應用程序 package 並行檢出,並通過相對路徑依賴。

"dependencies": {
    "lib": "../../lib",
    "aws-cdk-lib": "2.39.0"
  },

當前行為:

  1. npm install在庫中
  2. npm install in app 在node_module中創建一個指向 lib 的符號鏈接。 "aws-cdk-lib": "2.1.0"

期望的行為:

  1. npm install在庫中
  2. npm install in app 克隆 lib 的 src,並在node_module中使用"aws-cdk-lib": "2.39.0"構建 lib

我如何實現這一目標?

我不想使用其他解決方法,例如通過 git repo 依賴,因為在部署期間我沒有簡單的方法來獲取 git 憑據。

我真的不推薦這個,但如果你想要的只是要編譯的源,直接導入即可:

import { X } from '../../lib'

但是您還必須在項目中安裝 lib 的依賴項。

或者,您可以在tsconfig.json中添加導入路徑的別名:

"compilerOptions": {
    "baseUrl": "src",
    "paths": {
        "@lib": ["../../lib/*"]
    }
}

並將其導入為:

import { X } from '@lib'

但同樣,您必須將庫依賴項添加到項目的package.json中。

在那個階段,您最好將代碼復制/粘貼到您的項目中,這不那么脆弱,但仍然不是管理它的好方法。

通過 npm 安裝庫是一個更好的主意。 如果您不擁有該庫,但您擁有管道,那么有一些解決方法可能會奏效。 例如,將 repo 克隆到 codecommit 並從那里安裝它可能更容易,這完全取決於問題所在。

底線是,我不會僅僅因為您的部署管道很棘手就制作一個脆弱的代碼庫,該管道應該提供幫助,而不是讓您的生活更艱難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM