我正在使用 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)
但构建时间仍然相同。
我在具有以下结构的文件夹中有邮件模块:
- Mail
- templates
- <Handlebars files>
- mail.module.ts
Run Code Online (Sandbox Code Playgroud)
当我构建(编译)TypeScript 项目时,我的template文件夹不包含在build文件夹中。dist构建时如何将这些文件移入?
开发和生产构建有什么不同吗?
如何转换数据库实体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-validator和class-transformer包,但我没有找到任何方法来使用它们来实现这一目标。
有人可能会说,拥有 DTO 对此毫无意义,但我们在服务器和客户端之间共享 DTO 以维护 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 密钥库的发布版本也出现同样的错误:(
当我派遣行动时,我对行为有点困惑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 证明调度是异步的。
那么真理在哪里呢?
Android Studio 是否具有hot reload原生 Java 应用程序开发功能?我正在开发一些大型应用程序,需要很长时间才能重建,因此我正在寻找某种方法来使其更快。
让我们在 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)
我想ValidationError在this.authService.requestPasswordReset(body);抛出EntityNotFoundError异常时抛出格式错误(属性、值、约束等)。
如何手动创建此错误?当 DTO 验证class-validator失败时才会抛出这些错误。这些可以只是静态验证,而不是异步数据库验证。
所以最终的 API 响应格式应该是例如:
{
"statusCode": 400,
"error": "Bad Request",
"message": [
{
"target": {
"email": …Run Code Online (Sandbox Code Playgroud) npm如果Typescript 项目中存在没有自己类型的包,是否yarn有自动安装的功能?@types/*
就像是:
//package.json
{
// ...
installTypes: true
}
// installing package
yarn add ABC <- will install ABC + @types/ABC
Run Code Online (Sandbox Code Playgroud) 我有用JavaScript编写的Node.js项目(Express REST API)。我们决定将整个项目重写为TypeScript。是否可以缓慢地进行部分操作,但仍然能够启动服务器?我只想重写某些部分,因此项目将部分为JS,部分为TS。可能吗?
是否ts-node-dev编译ts并忽略js?
从 MySQL 8 开始,utf8字符集实际上是 4 字节utf8mb4,而不是 3 字节utf8mb3,但是 MariaDB 呢?
MariaDB 在某些版本中是否有相同的更新?
utf8现在当我们需要使用最新的 MariaDB/MySQL 服务器保存表情符号等字符时,使用安全吗?
我有问题。让我们看一下这段代码:
#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) typescript ×6
nestjs ×3
android ×2
yarnpkg ×2
build ×1
c++ ×1
ecmascript-6 ×1
flux ×1
google-api ×1
google-pay ×1
java ×1
javascript ×1
mariadb ×1
mysql ×1
node.js ×1
npm ×1
react-native ×1
reactjs ×1
redux ×1
types ×1