在使用Rush管理的 JavaScript monorepo 中,我有三个项目:
backend/
frontend/
shared/
在backend/package.json
andfrontend/package.json
中,shared
项目被声明为依赖项:
"dependencies": {
"shared": "0.0.0",
在本地环境中,一切正常,这要归功于npm link
为我运行的 Rush。
现在我需要发布。
在frontend
项目中,命令rushx build
(如npm run build
)在 webpack 的帮助下创建 JS 和 CSS 包,并将它们放在backend/
目录中。
我想将该backend
项目作为 npmjs 上的真实包发布。我不想shared
作为一个不同的包发布,因为在发布的版本中它不再共享。内容shared
已经捆绑在前端。我也想把它嵌入后端。
我试着打包它:
cd backend/
npm pack ../shared
# A new file is created: 'shared-0.0.0.tgz'
然后我编辑backend/package.json
:
"dependencies": {
"shared": "shared-0.0.0.tgz",
但之后生成的包不起作用。当我执行npm install my-published-package
时,它会尝试shared-0.0.0.tgz
在当前目录而不是已安装的包目录中查找。
有没有优雅的解决方案?