【deno】denopkg.com 경유로 인스톨 한 모듈을 이용하려고 하면, 「An import path cannot end with a '. ts'extension.」의 에러가 발생한다

5174 단어 VimTypeScript에서
htps : // 코 m / 우키 00 아 / ms / 817442b00dc8f3b5696d 계속.

deno.land에서 다운로드한 모듈에 대해서는 에서 _ls_p ㅅ긴 를 도입하는 것으로, 「An import path cannot end with a '. ts'extension...」의 에러를 회피할 수 있게 되었다.

그러나 dem을 사용하여 denopkg.com에서 dinatra을 설치하려고했는데 위 페이지와 비슷한 이벤트가 발생했습니다.
$ dem add https://denopkg.com/syumai/[email protected]



전제



Vim 등의 에디터를 이용하는 경우를 상정하고 있습니다.
vscode를 이용하는 경우는 vscode-deno 플러그인을 도입하는 것으로 해결한다고 생각합니다.

해결책



typescript-deno-plugin을 도입하고 tsconfig.json에서 읽도록 설정하여 해결합니다.
$ yarn add -D typescript-deno-plugin typescript

tsconfig.json
{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "baseUrl": ".",
    "paths": {
      "deno": ["./types/deno.d.ts"],
      "https://*": [
        "../../../.cache/deno/deps/https/*"
      ],
      "http://*": [
        "../../../.cache/deno/deps/http/*"
      ]
    },
   "plugins": [{ "name": "typescript-deno-plugin" }]
  }
}

도입 후, 이하와 같이 형 정의를 해결할 수 있게 되었다.



원인



dem에 의해 작성된 ./vendor/https/denopkg.com/syumai/dinatra/mod.ts를 확인해 보면 "An import path cannot end with a '. ts'extension..."오류가 발생했습니다.

./vendor/https/denopkg.com/syumai/dinatra/mod.ts
export * from 'https://denopkg.com/syumai/[email protected]/mod.ts';
~/.cache/deno/deps/https/denopkg.com/syumai/[email protected] 디렉토리를 확인해 보았을 때, mod.ts라는 파일은 존재하지 않고 대신 mod.ts.headers.json라는 파일이 존재했습니다.

내용은 아래와 같다.

~/.cache/deno/deps/https/denopkg.com/syumai/[email protected]/mod.ts.headers.json
{"redirect_to":"https://raw.githubusercontent.com/syumai/dinatra/0.7.1/mod.ts"}

mod.ts.headers.json가 제대로 해결되지 않았기 때문입니다.

typescript-deno-plugin은, *.headers.json 파일이 존재하는 경우, redirect_to 의 참조처에 따라서, 형태 정의를 해결하는 처리가 행해지고 있기 때문에, 이 플러그인을 도입하는 것으로 문제가 해결되었다.

좋은 웹페이지 즐겨찾기