Я не могу импортировать свою опубликованную библиотеку машинописи с этой ошибкой: «Модуль не найден: не удается разрешить« tqt »в ...» - PullRequest
2 голосов
/ 13 октября 2019

Я опубликовал мертвый простой модуль машинописного текста, используя этот учебник , и он устанавливается через

npm install --save tqt@1.0.0

При попытке использовать его в программе я получаю следующее:

Module not found: Can't resolve 'tqt' in '/home/akiva/Programming/frogcast/src'

из этого:

import React from "react";
import { CA_PoliticalParty } from "tqt";

console.log(CA_PoliticalParty); // Anything that invokes this will error.
class App extends React.Component
{
    constructor() {
        super("");
    }
    render() { return ( <div> </div> )};
};

export default App;

С соответствующим кодом, который был опубликован, это:

TQt.ts

// Canadian Enumerators
export enum CA_PoliticalParty {
    // Canadian Major National Political Parties
    None= "None",
    CPC = "CPC",
    GPC = "GPC",
    LPC = "LPC",
    NDP = "NDP",
    PPC = "PPC",
}

index.ts

export {CA_PoliticalParty} from './TQt'

package.json

{
  "name": "tqt",
  "version": "1.0.0",
  "description": "Typescript Namespaces and Enums",
  "main": "index.js",
  "types": "dist/index.d.ts",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "Akiva Avraham <akiva@linux.com>",
  "license": "GPL-2.0",
  "repository": {
    "type": "git",
    "url": "git+ssh://akiva@git.launchpad.net/tqt"
  },
  "devDependencies": {
    "typescript": "^3.6.4"
  }
}

tsconfig.json

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es6",
    "declaration": true,
    "outDir": "./dist", 
    "lib": ["es5","es6","dom"]
  },
  "include": [
    "src/**/*"
  ]
}

Есть ли что-то очевидное, чего мне здесь не хватает? Я поиграл с настройками только очень незначительными способами без изменений, и я следовал учебному пособию в точности так, как он изложен.

1 Ответ

1 голос
/ 13 октября 2019

Проблема в том, что TypeScript outDir не соответствует package.json main. Для вашей конкретной настройки это будет работать, если вы измените main на dist/index.js (что параллельно с тем, что вы правильно сделали для types.)

enter image description here

...