Загрузить заголовочные файлы в TypeScript

Пытаюсь разобраться с заголовочными файлами. В одной статье написано так:

Вначале загрузим определения типов для библиотеки jquery с помощью следующей команды:

npm install --save-dev @types/jquery

В итоге в проекте будет создана папка node_modules/@types, в которой каталог jquery будет хранить заголовочные файлы для библиотеки jquery.
Кроме того, в проекте будет создан файл package.json со следующим содержимым:

{
  "devDependencies": {
    "@types/jquery": "^3.5.5"
  }
}

Причём далее явно видно, что подразумевается, что папка node_modules и файл package.json создадутся именно в корне проекта: там приведён скриншот проекта.

Но у меня так не получается. Я набираю команду npm install --save-dev @types/jquery -> в терминале написано, что всё успешно:

введите сюда описание изображения

При этом в проекте ничего не появилось: ни папки node_modules , ни файла package.json. Но я обнаружил, что в домашней директории /home/USER_NAME у меня есть папка node_modules и вот в ней после данной команды появляется поддиректория @types , в которой есть директория jquery:

введите сюда описание изображения

Я попробовал сделать по-другому: сначала создал в корне проекта файл package_json с содержимым:

{
    "devDependencies": {
        "@types/jquery": "^3.5.5"
    }
}

Далее опять набираю в терминале команду npm install --save-dev @types/jquery , и вот на этот раз в корне проекта действительно появляется папка node_modules , внутри которой есть @types/jquery :

введите сюда описание изображения

То есть у меня почему-то пакеты по-умолчанию ставятся не в проект, а вдомашнюю директорию, т.е. я так понимаю "глобально". При этом в другой статье я нашёл , что:

введите сюда описание изображения

т.е. получается, что чтобы установить пакет глобально, нужен ключ -g , а я как раз его не ввожу. Но у меня всё равно не получается.

В общем, кто разбирается в теме подскажите пожалуйста, почему у меня не загружаются определения типов для библиотеки jquery локально, и не создаётся файл package.json ? Что я делаю не верно?

На всякий случай, версия npm 8.3.1 , версия node 16.14.0

введите сюда описание изображения


Ответы (1 шт):

Автор решения: Matvj

Проблема, с которой вы столкнулись, может быть связана с тем, что команда npm install выполняется в неправильной директории или в проекте, который не был инициализирован должным образом. Давайте разберем шаги, которые помогут вам установить пакеты локально и создать файл package.json.

1. Проверка текущей директории

Прежде всего, убедитесь, что вы находитесь в корне вашего проекта, когда выполняете команду установки. Вы можете проверить свою текущую директорию с помощью команды:

pwd

или для Windows:

cd

2. Инициализация проекта

Перед установкой пакетов необходимо инициализировать проект, если вы этого еще не сделали. Для этого выполните команду:

npm init -y

Эта команда создаст файл package.json с настройками по умолчанию. Если вы не выполните эту команду, npm не будет знать, где хранить зависимости, и может установить их глобально.

3. Установка пакетов

После инициализации проекта вы можете установить типы для jQuery локально, выполнив команду:

npm install --save-dev @types/jquery

4. Проверка наличия файлов и папок

После выполнения команды npm install в корне вашего проекта должны появиться следующие элементы:

  • Папка node_modules, которая будет содержать установленные пакеты.
  • Обновленный файл package.json, в котором будут указаны зависимости в разделе devDependencies.

5. Убедитесь, что вы не используете npm link

Если в вашей системе установлен пакет npm link, он может влиять на поведение установки пакетов. Убедитесь, что вы не используете его в вашей директории проекта.

6. Проверка глобальных установок

Если пакеты все еще устанавливаются глобально, выполните команду:

npm config get prefix

Эта команда покажет вам путь, куда npm будет устанавливать глобальные пакеты. Убедитесь, что вы находитесь в нужной директории и что конфигурация npm не изменена.

7. Установка с ключом -g

Как вы уже заметили, установка с ключом -g установит пакет глобально. Например:

npm install -g @types/jquery

Это не то, что вам нужно, если вы хотите установить пакет локально, поэтому не используйте -g.

Резюме

  • Убедитесь, что вы находитесь в корне проекта.
  • Инициализируйте проект с помощью npm init -y.
  • Установите пакет, используя npm install --save-dev @types/jquery.
  • Проверьте, появились ли папка node_modules и файл package.json в корне вашего проекта.
→ Ссылка