Jest не может найти модуль из node_modules - PullRequest
0 голосов
/ 25 ноября 2018

Я создаю базовый модуль npm для машинописного текста, но я застрял в шутливых тестах.Я пытаюсь включить модуль jsonld из https://github.com/types/jsonld, и все, кажется, работает нормально, но когда я запускаю команду yarn test, у меня появляется сообщение об ошибке Cannot find module 'jsonld' from 'DidDocument.ts'

package.json

{
    "name": "defined-id",
    "version": "1.0.0",
    "description": "Defined ID",
    "main": "lib/index.js",
    "types": "lib/index.d.ts",
    "scripts": {
        "test": "jest --config jestconfig.json",
        "build": "tsc",
        "format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
        "lint": "tslint -p tsconfig.json",
        "prepare": "yarn run build",
        "prepublishOnly": "yarn test && yarn run lint",
        "preversion": "yarn run lint",
        "version": "yarn run format && git add -A src",
        "postversion": "git push && git push --tags"
    },
    "repository": {
        "type": "git",
        "url": "git+https://github.com/VSaulis/defined-id.git"
    },
    "keywords": [
        "DID",
        "DID document"
    ],
    "author": "Vytautas Saulis",
    "license": "ISC",
    "bugs": {
        "url": "https://github.com/VSaulis/defined-id/issues"
    },
    "homepage": "https://github.com/VSaulis/defined-id#readme",
    "devDependencies": {
        "@types/jest": "^23.3.9",
        "jest": "^23.6.0",
        "prettier": "^1.15.2",
        "ts-jest": "^23.10.5",
        "tslint": "^5.11.0",
        "tslint-config-prettier": "^1.16.0",
        "typescript": "^3.1.6"
    },
    "dependencies": {
        "@types/jsonld": "github:types/jsonld",
        "@types/uuid": "^3.4.4"
    }
}

jestconfig.json

{
    "transform": {
        "^.+\\.(t|j)sx?$": "ts-jest"
    },
    "testRegex": "(/__tests__/.*|(\\.|/)(test|spec))\\.(jsx?|tsx?)$",
    "moduleFileExtensions": ["ts", "tsx", "js", "jsx", "json", "node"],
    "moduleDirectories": ["node_modules", "src"]
}

DidDocument.ts

import * as jsonld from 'jsonld';
import { Did } from './Did';
import { PublicKey } from './PublicKey';

export class DidDocument {
    private context: string[] = ["https://w3id.org/did/v1", "https://w3id.org/security/v1"];
    private did: Did;
    private publicKeys: PublicKey[];

    constructor(did: Did, publicKeys: PublicKey[]) {
        this.did = did;
        this.publicKeys = publicKeys;
    }

    public format(): void {

        const doc = {
            "http://schema.org/id": this.did.format(),
            "publicKey": this.publicKeys.map((publicKey: PublicKey) => JSON.stringify(publicKey.format()))
        };

        return jsonld.compact(doc, JSON.stringify(this.context), () => { return; });
    }
}

У меня есть прогноз, что модуль jsonld находится не в корневом каталоге, а в каталоге js /.Но когда я изменил импорт на jsonld/js проблемы остались прежними.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...