Typescript и babel-plugin-module-resolver: VS Code не разрешает импорт - PullRequest
0 голосов
/ 29 октября 2018

В настоящее время я учусь использовать машинопись, но у меня есть проблема с VS Code. Я создал базовый проект с Babel 7 и парой плагинов. Я запускаю скрипт, используя команду npm run dev . Вот полный список моих зависимостей:

//package.json
"scripts": {
  "dev": "nodemon src/index.ts --extensions \".ts\" --exec babel-node"
},
"devDependencies": {
  "@babel/cli": "^7.1.2",
  "@babel/core": "^7.1.2",
  "@babel/helper-plugin-utils": "^7.0.0",
  "@babel/node": "^7.0.0",
  "@babel/plugin-proposal-async-generator-functions": "^7.1.0",
  "@babel/plugin-proposal-class-properties": "^7.1.0",
  "@babel/plugin-proposal-decorators": "^7.1.2",
  "@babel/plugin-proposal-optional-catch-binding": "^7.0.0",
  "@babel/plugin-proposal-optional-chaining": "^7.0.0",
  "@babel/plugin-transform-modules-commonjs": "^7.1.0",
  "@babel/plugin-transform-typescript": "^7.1.0",
  "babel-plugin-module-resolver": "^3.1.1"
}

Ниже приведено содержимое моих 2 .ts файлов.

// src/script.ts
export default function (arg:string): string {
  return arg;
};

// src/index.ts
import Fn from "@/script";
console.log( Fn("Hello World") );

А вот мой конфигурационный файл Babel:

//babel.config.js
module.exports = {
  "plugins": [
    ["@babel/plugin-transform-typescript"],
    ["@babel/plugin-transform-modules-commonjs"],
    ["@babel/plugin-proposal-async-generator-functions"],
    ["@babel/plugin-proposal-optional-catch-binding"],
    ["@babel/plugin-proposal-optional-chaining"],
    ["@babel/plugin-proposal-decorators", { "legacy": true }],
    ["@babel/plugin-proposal-class-properties", { "loose": true }],//must be after @babel/plugin-proposal-decorators

    ["module-resolver", {
      //"root": ["./src", "./test"],
      "alias": {
        //"__root": ".",
        "@": "./src",
        //"#": "./src/assets",
        //"_": "./src/assets/_",
        //"!": "./static"
      },
    }]
  ]
};

И мой конфигурационный файл Typescript:

// tsconfig.json
{
  "compilerOptions": {
      "baseUrl": ".",
      "paths": {
        "@": ["./src"]
      }
  }
}

Когда я запускаю этот код, он выглядит хорошо, и я вижу «Hello World» в своей консоли. Однако VS Code, похоже, не понимает путь "@ / script" . Это подчеркнуто красным с подсказкой, которая говорит

[ts] Не удается найти модуль'@/script'.

У меня нет этой проблемы, если я не использую плагин babel-plugin-module-resolver, вместо этого используется путь "./script". Есть ли способ это исправить?

Спасибо!

1 Ответ

0 голосов
/ 29 октября 2018

Ваш синтаксис для paths в tsconfig.json неверен.Это должно быть:

"paths": {
  "@/*": ["./src/*"]
}

См. Второй пример в этом разделе документации .

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