小编ada*_*lev的帖子

npm相当于纱线分辨率?

是否有相当于纱线分辨率功能的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)

npm package.json yarnpkg

27
推荐指数
5
解决办法
1万
查看次数

如何用玩笑测试 void 异步函数是否成功?

你如何简洁地测试一个 void 异步函数是否用 jest 成功执行?我正在使用打字稿。

// foo.ts
export class Foo {
  public async bar(): Promise<void> {
    await someAsync();
  }
}
Run Code Online (Sandbox Code Playgroud)

如何测试new Foo().bar()不抛出错误?

void promise typescript jestjs

15
推荐指数
2
解决办法
1万
查看次数

在 monorepo 中强制执行共享依赖项

我们有一个使用lernayarn 工作区的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 addlerna run添加/升级​​,但是如何防止个人在不知不觉中使他们的软件包变得独特?

npm lerna monorepo yarnpkg yarn-workspaces

7
推荐指数
1
解决办法
1384
查看次数

mongo聚合管道的$out阶段未使用节点生效

长期倾听者,第一次来电。

我正在使用节点驱动程序在 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

3
推荐指数
1
解决办法
1553
查看次数