Требуется модуль машинописи в программе узла Javascript

#node.js #typescript #visual-studio-code

Вопрос:

У меня есть библиотека машинописных текстов, которая является общей для множества проектов в нашем репозитории. Чтобы использовать библиотеку, нам пришлось перенести весь проект на typescript. Затем мы используем псевдоним модуля в нашем пакете.json, а затем, когда узел запускается, он берет .js.

псевдоним модуля требует, чтобы потребляющий проект был машинописным, и у нас есть тестовая платформа, написанная на javascript. Мы хотели бы удовлетворить следующие требования:

  1. Используйте транспилированный машинописный текст в этом проекте
  2. Не нужно запускать tsc вручную
  3. Запустите отладчик в vscode, как мы можем с нашими проектами машинописи
  4. Мы не хотим использовать репо NPM, потому что библиотеки часто редактируются одновременно.

Вот что мы используем для наших проектов с машинописным текстом, но поскольку проект является javascript, псевдоним модуля использовать нельзя.

пакет.json

 {
  "name": "",
  ...
  "dependencies": {
    "module-alias": "^2.2.2",
    ...
  },
  "devDependencies": {
    "@types/node": "^14.14.37",
    "@typescript-eslint/eslint-plugin": "^4.20.0",
    "@typescript-eslint/parser": "^4.20.0",
    "eslint": "^7.23.0",
    "eslint-plugin-no-loops": "^0.3.0",
    "typescript": "^4.2.3",
    "module-alias": "^2.2.2",
    ...
  },
  "_moduleAliases": {
    "common": "./out/common"
  }
}
 

tsconfig.json

 {
  "compilerOptions": {
      "target": "es6",
      "module": "commonjs",
      "sourceMap": true,
      "outDir": "out/",
      "strict": true,
      "baseUrl": ".",
      "skipLibCheck": true,
      "forceConsistentCasingInFileNames": true,
      "noImplicitAny": true,
      "allowJs": true,
      "paths": {
          "common/*" : ["../../common/*"],
      },
  },
  "compileOnSave": true,
  "exclude": [
      "out/",
      "node_modules/"
  ]
}
 

Комментарии:

1. В чем проблема? Транспонирование TS и его импорт должны работать нормально.

2. Почему вы не компилируете библиотеку yow?

3. Вы не предоставили никаких подробностей о том, что вы пробовали и что не удалось. ТАК что это не то место, где можно заставить людей делать всю вашу работу за вас. Мы здесь, чтобы помочь друг другу, когда мы застрянем.

4. Я добавил пакет.json и tsconfig.json, которые мы используем.