是否有相当于纱线分辨率功能的npm ?在npm package.json docs中没有提到它.
例如,我想在3.3.2安装lerna@3.3.2及其中一个依赖项(@ lerna/publish).目前使用像这样的纱线,但更喜欢使用npm而不是手动更改package-lock.json或类似的任何狡猾.
"devDependencies": {
"lerna": "3.3.2",
},
"resolutions": {
"@lerna/publish": "3.3.2"
}
Run Code Online (Sandbox Code Playgroud) 你如何简洁地测试一个 void 异步函数是否用 jest 成功执行?我正在使用打字稿。
// foo.ts
export class Foo {
public async bar(): Promise<void> {
await someAsync();
}
}
Run Code Online (Sandbox Code Playgroud)
如何测试new Foo().bar()
不抛出错误?
我们有一个使用lerna和yarn 工作区的monorepo。多个团队向它提供包,并且有一些共同的依赖项,我们希望强制人们使用相同的版本。
强制所有包使用相同版本的特定依赖项的选项是什么?有没有办法在不编写自定义脚本的情况下实现这一目标?
我想防止这种情况:
my-repo/
packages/
pkg-A/
package.json
"address-validator": 1.1.0
pkg-B/
package.json
"address-validator": 1.2.0
Run Code Online (Sandbox Code Playgroud)
我知道您可以同时使用lerna add
或lerna run
添加/升级,但是如何防止个人在不知不觉中使他们的软件包变得独特?
长期倾听者,第一次来电。
我正在使用节点驱动程序在 mongo 上执行聚合命令,并且该$out
阶段似乎仅在链接某些方法时才会生效。
我想aggregate()
用 $out 作为管道的最后阶段进行调用,然后回调。目前,它仅在我链接next()
或toArray()
令人厌烦的情况下才有效,因为方法签名是聚合(管道,选项,回调)。
为了清楚起见,下面的示例进行了简化。
在这里,我使用回调,$out 不生效(即 newNames 未创建,但回调被执行)。我正在重构几个月前的东西,这之前是有效的(节点驱动程序的版本 2.2.33):
db.collection('names')
.aggregate([
{ $match: {} },
{ $limit: 1 },
{ $out: 'newNames' }
], (err, result) => {
// result is an AggregationCursor
callback();
});
Run Code Online (Sandbox Code Playgroud)
如果我不添加回调而是链接 next() ,则 $out 阶段会生效
db.collection('names')
.aggregate([
{ $match: {} },
{ $limit: 1 },
{ $out: 'newNames' }
])
.next((err, result) => {
// result is null, why? …
Run Code Online (Sandbox Code Playgroud) mongodb mongodb-query aggregation-framework node-mongodb-native
npm ×2
yarnpkg ×2
jestjs ×1
lerna ×1
mongodb ×1
monorepo ×1
package.json ×1
promise ×1
typescript ×1
void ×1