В предыдущей статье я представил процесс разработки npm-пакетов, а в этой статье я расскажу о проблемах, с которыми столкнулся при разработке npm-пакетов. Первый вопрос#!/usr/bin/env node
что именно? (Если мое понимание неверно, вы можете дать указатели)
При разработке пакета npm после привязки пакета к вашему проекту запуск пакета обнаружил ошибку.
Перейдите в Google, чтобы найти его, и обнаружите, что решение состоит в том, чтобы добавить строку в верхнюю часть вашего bin-файла.#!/usr/bin/env node
. Что делает это предложение? Прежде чем вводить его, нужно ввести очко знаний.
Shebang
Если есть фронтенд-разработчики, которые использовали Linux или Unix, вы должны быть знакомы с Shebang — это название символа.#!
. Этот символ обычно появляется в начале первой строки основного файла системы Unix и используется для обозначения интерпретатора этого файла сценария. После понимания Shebang вы можете понять, что эта строка добавлена, чтобы указать, что узел используется для выполнения файла сценария.
Когда вы вводите команду, как npm идентифицирует и выполняет соответствующий файл? Конкретный принцип Жуань Ифэн ужеруководство по использованию скриптов npmвведено в. Простое понимание заключается в том, что после ввода команды указанный скрипт будет выполняться в новой оболочке, при выполнении этого скрипта нам нужно указать, что интерпретатором этого скрипта является node.
В некоторых случаях, даже если вы добавите эту строку, вы все равно можете столкнуться с ошибкой, почему так?
No such file or directory
Для того, чтобы решить эту проблему, мы должны сначала понять/usr/bin/env
. Мы уже знаем, что Shebang должен указывать интерпретатор скрипта, но разные пользователи или разные интерпретаторы скриптов могут быть установлены в разных директориях, откуда система узнает, где найти ваш интерпретатор?/usr/bin/env
Просто скажите системе посмотреть в каталоге PATH.
так настроить#!/usr/bin/env node
, состоит в том, чтобы решить проблему различных путей пользователей к узлам, позволяя системе динамически искать узлы для выполнения ваших файлов сценариев.
Увидев это, вы должны понять, почему он появляетсяNo such file or directory
ошибка? Поскольку путь установки вашего узла не добавлен в системный PATH. Итак, перейдите к настройке переменной среды узла.
Если вы просто хотите простой тест, то вы можете пройтиwhich node
команда, чтобы найти путь установки вашего локального узла, поместите/usr/bin/env
Измените путь к узлу, который вы нашли.
Последнее, что следует отметить, это то, что Windows не поддерживает Shebang, она использует расширение файла, чтобы определить, какой интерпретатор использовать для выполнения сценария.