小编APW*_*APW的帖子

TypeScript webpack build不包括node_modules

为什么webpack在导入索引文件时不包含构建中的node_module库?

webpack对我来说仍然是一种黑色艺术,我还没有完全掌握,所以下面是我想要实现的解释.

我正在构建一个测试应用程序,以在AWS Lambda节点服务器上作为无服务器代码运行.目标是通过在服务器上具有一个或多个块并且没有node_modules文件夹来使部署包尽可能小.

我正在使用Typescript v3编写并使用webpack v4为服务器创建一个包.

这是我的目录结构:

  • DIST /
  • node_modules /
  • SRC/index.ts
  • 的package.json
  • tsconfig.json
  • tslint.json
  • webpack.config.js

这是我的package.json的摘录

  "dependencies": {
    "moment": "^2.22.2"
  },
  "devDependencies": {
    "@types/aws-lambda": "^8.10.15",
    "@types/node": "^10.12.2",
    "awesome-typescript-loader": "^5.2.1",
    "aws-lambda": "^0.1.2",
    "source-map-loader": "^0.2.4",
    "ts-node": "^7.0.1",
    "tslint": "^5.11.0",
    "tslint-loader": "^3.5.4",
    "typescript": "^3.1.6",
    "webpack": "^4.25.1",
    "webpack-bundle-analyzer": "^3.0.3",
    "webpack-cli": "^3.1.2",
    "webpack-node-externals": "^1.7.2"
  }
Run Code Online (Sandbox Code Playgroud)

我想要捆绑的index.ts:

import { Handler } from "aws-lambda";
import moment from "moment";

const handler: Handler = async ( event: any ) => {
    const stamp = moment().format( "x" ); …
Run Code Online (Sandbox Code Playgroud)

typescript webpack aws-lambda

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

为什么 jest v24 模拟类需要私有方法

我需要使用 jest v24+ 创建打字稿类的模拟实现。我特别尝试创建一个模拟类,该类被注入到构造函数中,并模拟将被调用以返回特定响应的函数。

如何为每个测试创建模拟?

更多信息:

我已经开始了一个新项目,现在使用 jest v24,它在编写测试时产生了一个我无法解决的问题。

将下面的示例与 jest v23 一起使用,以前我可以模拟 Randomiser 类,如下所示:

const Mock = jest.fn<Randomiser>(() => ({
  getRandom: jest.fn().mockReturnValue(10)
}));
Run Code Online (Sandbox Code Playgroud)

这将成功编译和构建。

从 v24 开始, fn 函数采用并添加泛型,<T, Y extends any[]>我不知道这是否与行为变化相关,但现在我收到错误:

类型 '{ getRandom: Mock; 中缺少属性 'rand' }' 但在“Randomiser”类型中是必需的。ts(2741)

import "jest";

class Randomiser {
    public getRandom(): number {
        return this.rand();
    }
    private rand(): number {
        return Math.random();
    }
}

class Multiplier {
    private randomiser: Randomiser;
    constructor(randomiser: Randomiser) {
        this.randomiser = randomiser;
    }

    multiplyRandom(factor: number): number { …
Run Code Online (Sandbox Code Playgroud)

typescript jestjs visual-studio-code

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