Джоэл Хукс, создатель egghead.io, написал пост об автоматизации новых постов для Гэтсби с помощью простого скрипта npm.

Я решил, что с некоторыми изменениями, относящимися к Gatsby Starter Blog, я опубликую его как пакет на npm.

Первым на рынок? Почти никогда

У меня было серьезное любительское представление, что я буду единственным с этим скриптом в реестре. Уже было несколько других, некоторые более продуманные, чем мои, использующие намного больше технологий, чем нужно, но эй. Я думаю, это хорошо выглядит на вашем GitHub.

Хотя меня это не остановило.

Я продолжал исследовать, как сделать модуль и опубликовать его.

Ошибки

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

Я получил ответ, который заставил меня задуматься о том, как я структурировал свой файл package.json.

Взгляните на старый файл package.json:

Здесь я использовал основные зависимости как зависимости разработчиков. Я действительно должен исследовать разницу, потому что, когда человек на форумах запустил мой скрипт, он получил ошибку, связанную с наличием slug в качестве зависимости разработчика:

Я решил переместить их в основные зависимости и перезапустить.

Скрипты не нужны

Еще одна проблема заключалась в том, что я собирал воедино информацию со всего Интернета и пытался ее проанализировать. Я получил информацию с YouTube, npm blog, Medium, везде, где я мог найти, как это сделать, я попытался реализовать в своем собственном модуле.

Одна из вещей, которые я делал неправильно, заключалась в том, что я использовал произвольный npm script, а также помещал исполняемый файл в папку bin и указывал это в файле package.json.

Сначала я удалил объект scripts. Во-вторых, всякий раз, когда я пытался запустить его, я запускал его с npm run new-post, на что я получил ошибку: missing script: new-post. Я не знаю почему, но необходимы дальнейшие исследования npm scripts.

Глобальная установка

Комментатор форума показал мне, как он установил и запустил его.

npm install --global new-post-gatsby-starter-blog

Я не устанавливал его глобально, и у меня до сих пор нет его локального для конкретного проекта; Я работаю над этим.

Он также запускал скрипт с new-post, и он работал, но были ошибки.

Одним из них был выпуск slug. Я исправил это, но по-прежнему появлялись странные ошибки.

Не удается найти модуль ‹project/bin/new-post›

Это было странно, и я приписал это тому, что мой объект main не указывал на правильный файл. С этой модификацией и удалением объекта scripts все работает как надо.

Урок: исследуйте, прежде чем делать что-то подобное

Я сделал это в спешке, чтобы просто сначала это сделать, а это означало, что были довольно серьезные ошибки и разочарования, которых можно было бы избежать. Я должен был провести более тщательное исследование, чтобы не просматривать так много информации по теме, а затем пытаться собрать воедино обрывки видео и статей, которые я нашел в Интернете.

Прежде чем опубликовать Check Yo Self CLI, я планирую провести еще немного исследований и планирования.

Где найти модуль

Вы можете найти его на npm и посмотреть релизы на моем GitHub.