小编Bat*_*rka的帖子

如何在 GitHub Actions 中缓存 yarn 包

我正在使用 GitHub Actions 来构建我的 TypeScript 项目。每次运行操作时,我都会等待 3 分钟以安装所有依赖项。

有没有办法缓存纱线依赖项,所以构建时间会更快?

我试过这个:

     - name: Get yarn cache directory path
       id: yarn-cache-dir-path
       run: echo "::set-output name=dir::$(yarn cache dir)"

     - uses: actions/cache@v1
       id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
       with:
         path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
         key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
         restore-keys: |
           ${{ runner.os }}-yarn-

    - name: Install yarn
      run: npm install -g yarn

    - name: Install project dependencies
      run: yarn
Run Code Online (Sandbox Code Playgroud)

但构建时间仍然相同。

typescript yarnpkg github-actions

22
推荐指数
4
解决办法
9992
查看次数

构建打字稿时如何将非ts文件复制到dist?

我在具有以下结构的文件夹中有邮件模块:

- Mail
  - templates
      - <Handlebars files>
  - mail.module.ts
Run Code Online (Sandbox Code Playgroud)

当我构建(编译)TypeScript 项目时,我的template文件夹不包含在build文件夹中。dist构建时如何将这些文件移入?

开发和生产构建有什么不同吗?

build typescript nestjs

20
推荐指数
4
解决办法
2万
查看次数

在 TypeScript 和 NestS 中将类转换为类/对象(实体到 DTO)

如何转换数据库实体User

class User {
  public firstName: string;
  public lastName: string;
  public phone?: string;
  public email: string;
  public status: EUserState;
  public tokens: Token[];
  public password: string;
}

Run Code Online (Sandbox Code Playgroud)

进入 DTO 实体GetUserDTO

class GetUserDTO {
  public id: number;
  public firstName: string;
  public lastName: string;
  public phone?: string;
  public email: string;
}
Run Code Online (Sandbox Code Playgroud)

在打字稿中?我正在使用@nestjs,class-validatorclass-transformer包,但我没有找到任何方法来使用它们来实现这一目标。

有人可能会说,拥有 DTO 对此毫无意义,但我们在服务器和客户端之间共享 DTO 以维护 API 结构。

有任何想法吗?

typescript class-validator nestjs class-transformer

11
推荐指数
1
解决办法
6623
查看次数

尝试调用“play-services-pay”Android SDK API 时出现“使用未知证书签名的包”

我正在尝试实现从 React Native 应用程序将忠诚卡添加到 Google Pay 帐户的功能。我正在使用这个教程

我成功创建了自定义本机包和模块,并且来自 JavaScript 的调用正在运行。那不是我的问题。

我的问题是当我打电话时Pay.getClient(this.getCurrentActivity());。我收到此错误:

2021-07-29 21:38:40.695 17480-19373/com.examp.le E/GoogleApiManager: Failed to get service from broker. 
    java.lang.SecurityException: GoogleCertificatesRslt: Package signed with unknown certificate (go/gsrlt)
        at android.os.Parcel.createException(Parcel.java:2071)
        at android.os.Parcel.readException(Parcel.java:2039)
        at android.os.Parcel.readException(Parcel.java:1987)
        at com.google.android.gms.common.internal.IGmsServiceBroker$Stub$zza.getService(com.google.android.gms:play-services-basement@@17.5.0:14)
        at com.google.android.gms.common.internal.BaseGmsClient.getRemoteService(com.google.android.gms:play-services-basement@@17.5.0:281)
        at com.google.android.gms.common.api.internal.zabj.run(com.google.android.gms:play-services-base@@17.5.0:11)
        at android.os.Handler.handleCallback(Handler.java:883)
        at android.os.Handler.dispatchMessage(Handler.java:100)
        at android.os.Looper.loop(Looper.java:214)
        at android.os.HandlerThread.run(HandlerThread.java:67)
Run Code Online (Sandbox Code Playgroud)

似乎这意味着我无法初始化/获取 GoogleApi 访问权限,因为我处于调试模式(在调试模式下构建我的应用程序)并且我的证书未签名。

我发现包的文档非常有限com.google.android.gms:play-services-pay,所以我不确定是否能够在调试/开发环境中调用它。

知道如何让它发挥作用吗?是否是我的 Activity 源自 React Native ( ReactContextBaseJavaModule.getCurrentActivity()) 导致的?

编辑:使用 Google 密钥库的发布版本也出现同样的错误:(

android google-api react-native google-pay

7
推荐指数
0
解决办法
1039
查看次数

那么...Redux 操作调度是同步还是异步?(没有 thunk 或 saga)

当我派遣行动时,我对行为有点困惑redux

例子:

onPressAdd() {
    this.props.addFloor({
        name: this.state.floor_name,
    });
    console.log(this.props.floors);
}
Run Code Online (Sandbox Code Playgroud)

我正在调用 redux 操作addFloor,将地板添加到存储中的数组中,然后我 console.log 这个变量,并且我期望更新状态([{name:'whatever'}]),但我得到[](空数组)

示例2:

async onPressAdd() {
    await this.props.addFloor({
        name: this.state.floor_name,
    });
    console.log(this.props.floors);
}
Run Code Online (Sandbox Code Playgroud)

在这个例子中,我得到了完美的更新商店:[{name:'whatever'}]

我到处都读到“如果没有 thunk 或 saga,Redux 操作调度是同步的(直接方式:调度操作->reduce->store”,但 rhis 证明调度是异步的。

那么真理在哪里呢?

flux reactjs redux

6
推荐指数
1
解决办法
4217
查看次数

Android Studio 原生 Java 应用开发中是否有“热重载”功能?

Android Studio 是否具有hot reload原生 Java 应用程序开发功能?我正在开发一些大型应用程序,需要很长时间才能重建,因此我正在寻找某种方法来使其更快。

java android android-studio

6
推荐指数
1
解决办法
7046
查看次数

在 NestJS 中抛出与 `class-validator` 相同的错误格式

让我们在 NestJS 项目中使用这个控制器:

  @Post('resetpassword')
  @HttpCode(200)
  async requestPasswordReset(
    @Body() body: RequestPasswordResetDTO,
  ): Promise<boolean> {
    try {
      return await this.authService.requestPasswordReset(body);
    } catch (e) {
      if (e instanceof EntityNotFoundError) {
        // Throw same exception format as class-validator throwing (ValidationError)
      } else throw e;
    }
  }
Run Code Online (Sandbox Code Playgroud)

Dto定义:

export class RequestPasswordResetDTO {
  @IsNotEmpty()
  @IsEmail()
  public email!: string;
}
Run Code Online (Sandbox Code Playgroud)

我想ValidationErrorthis.authService.requestPasswordReset(body);抛出EntityNotFoundError异常时抛出格式错误(属性、值、约束等)。

如何手动创建此错误?当 DTO 验证class-validator失败时才会抛出这些错误。这些可以只是静态验证,而不是异步数据库验证。

所以最终的 API 响应格式应该是例如:

{
    "statusCode": 400,
    "error": "Bad Request",
    "message": [
        {
            "target": {
                "email": …
Run Code Online (Sandbox Code Playgroud)

typescript class-validator nestjs

4
推荐指数
2
解决办法
7187
查看次数

npm 或yarn 是否具有自动安装@types 的功能(如果它们存在于Typescript 项目中)?

npm如果Typescript 项目中存在没有自己类型的包,是否yarn有自动安装的功能?@types/*

就像是:

//package.json
{
  // ...
  installTypes: true
}

// installing package
yarn add ABC <- will install ABC + @types/ABC
Run Code Online (Sandbox Code Playgroud)

npm typescript yarnpkg

4
推荐指数
1
解决办法
4798
查看次数

我可以同时使用JavaScript和TypeScript开发Node.js(Express)应用程序吗?

我有用JavaScript编写的Node.js项目(Express REST API)。我们决定将整个项目重写为TypeScript。是否可以缓慢地进行部分操作,但仍然能够启动服务器?我只想重写某些部分,因此项目将部分为JS,部分为TS。可能吗?

是否ts-node-dev编译ts并忽略js?

javascript node.js typescript ecmascript-6

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

MariaDB 中的“utf8”还是“utf8mb3”吗?

从 MySQL 8 开始,utf8字符集实际上是 4 字节utf8mb4,而不是 3 字节utf8mb3,但是 MariaDB 呢?

MariaDB 在某些版本中是否有相同的更新?

utf8现在当我们需要使用最新的 MariaDB/MySQL 服务器保存表情符号等字符时,使用安全吗?

mysql types character-encoding mariadb

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

C++ unique_ptr 初始化

我有问题。让我们看一下这段代码:

#include <iostream>
#include <string>
#include <memory>

class Writable {
public:
    virtual ~Writable() = default;
    virtual void write(std::ostream& out) const = 0;
};

class String : public Writable {
public:
    String(const std::string& str) : m_str(str) {}
    virtual ~String() override = default;
    virtual void write(std::ostream& out) const override { out << m_str << '\n'; }
private:
    std::string m_str;
};

class Number : public Writable {
public:
    Number(double num) : m_num(num) {}
    virtual ~Number() override = default;
    virtual void write(std::ostream& out) const …
Run Code Online (Sandbox Code Playgroud)

c++ initialization

0
推荐指数
1
解决办法
6335
查看次数