2016-11-25 2 views
1

Я пытаюсь полностью понять, как работает машинопись в проекте Node.js. Для этого я создал свою собственную папку custom_modules с отдельной папкой @types под моими декларациями, а фактическая реализация находится под номером custom_modules, пытающимся имитировать структуру node_modules. Моя цель - сделать этот модуль применимым в проекте не относительно с отдельной декларацией и реализацией. Я был в состоянии установить проект, который собирает с этой установкой, но работает это ошибки с:Типовые пользовательские модули узлов

Cannot find module 'foo'

Источник доступен здесь: https://github.com/anorborg/learn-ts

ответ

0

Папка node_modules представляет собой несколько особый случай как типизация получает handeled. Это результат работы nodejs. Взгляните на [mod-resolution] doucmentation (https://www.typescriptlang.org/docs/handbook/module-resolution.html), он более подробно описывает, как работает разрешение модуля в машинописном тексте.

Но вкратце, чтобы ответить на ваш вопрос: вы не можете использовать не относительные пути модулей таким образом. Узел будет искать файл в node_modules во время выполнения и не найдет его там. Свойство paths в tsconfig.json должно решить проблемы, которые могут возникнуть в других случаях, например, при таргетинге на RequireJS или SystemJS, но не на узле таргетинга.

Смежные вопросы