Советы по отладке модулей, о которых вы не знали — ссылка на npm

внешний интерфейс Командная строка модульный тест NPM

1. Предпосылки

При разработке приложений для узлов нам неизбежно нужно использовать или разбивать модули npm.Одна из проблем, с которыми мы часто сталкиваемся:

Как экспериментировать с недавно разработанными или модифицированными модулями npm в проекте?

У новых студентов обычно есть следующие методы:

Для демонстрации предположим, что проектmy-project, требует использования отдельногоmy-utilsмодуль

1.1 Выпустить бета-версию

  • Плюсы: Вы довольны идти.
  • недостаток:Скучно + скучно + скучно, беда + беда + беда.

1.2 Установить напрямую с относительным путем

$ cd path/to/my-project
$ npm install path/to/my-utils
  • Плюсы: Просто и понятно
  • недостаток:В процессе отладки часто требуется тонкая настройка, в это время необходимо переключиться в каталог my-utils для модификации, а затем несколько раз переустановить его, что очень хлопотно.

1.3 Использование мягких цепей

$ cd path/to/my-project/node_modules
$ ln -s path/to/my-utils my-utils
  • Преимущества: После мягкой цепи модификации с обеих сторон напрямую синхронизируются.
  • недостаток:Работа с командой хлопотная, а синтаксис разных операционных систем разный

2. Положительное решение - ссылка npm

Но на самом деле сам npm предусмотрел особый случай для такого рода ситуаций.npm linkинструкция.

Связанные документы:docs.npmjs.com/cli/link

Ниже мы кратко представим использование:

$ cd path/to/my-project
$ npm link path/to/my-utils

Просто замените слово, и все готово, круто~

Если два каталога не вместе, есть другой способ:

$ # 先去到模块目录,把它 link 到全局
$ cd path/to/my-utils
$ npm link
$
$ # 再去项目目录通过包名来 link
$ cd path/to/my-project
$ npm link my-utils

Эту команду также можно использовать для отладки модулей node cli, например, нам нужно отладить наш локальныйegg-init, ты можешь это сделать:

$ cd path/to/egg-init
$ npm link
$ # 此时全局的 egg-init 指令就已经指向你的本地开发目录了
$ egg-init # 即可

Удалить ссылку также очень просто:

$ npm unlink my-utils

3. Напишите в конце

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