作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有:
packages
-models
-package.json
-....
-server
-src
-index.ts
-package.json
packages/server/package.json
, 我有:
"scripts": {
"dev": "ts-node src/index.ts"
},
"dependencies": {
"@myapp/models": "../models",
packages/server/src/index.ts
, 我有:
import { sequelize } from '@myapp/models'
packages/models/src/index.ts
, 我有:
export type UserAttributes = userAttr
export { sequelize } from './sequelize';
Try `npm install @types/myapp__models` if it exists or add a new declaration (.d.ts) file containing `declare module '@myapp/models';`
import { sequelize } from '@myapp/models'
最佳答案
Lerna 将处理本地包之间的依赖关系,您只需要确保正确设置它们即可。我建议的第一件事是转到 @myapp/models
并确保您的 package.json
包含您需要的字段:main
更重要的是types
(或 typings
如果您愿意):
// packages/models/package.json
{
// ...
"main": "dist/index.js",
"types": "dist/index.d.ts",
// ...
}
dist
文件夹,这将我带到我的第二点 - 你需要构建每个包,就好像它是 monorepo 之外的一个单独的 NPM 模块。我不是说你需要
dist
文件夹,您在哪里构建它取决于您,您只需要从外部确保您的
@myapp/models
暴露
main
和
types
并且这些是有效且存在的
.js
和
.d.ts
文件。
@myapp/models
依赖就好像它是一个“真正的”包 - 你需要指定它的版本而不是指向一个文件夹:
// packages/server/package.json
{
"dependencies": {
// ...
"@myapp/models": "0.0.1" // Put the actual version from packages/models/package.json here
// ...
}
}
关于node.js - 如何从 Lerna monorepo 中的包中加载包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62366299/
我是一名优秀的程序员,十分优秀!