Сегодня вечером я программировал, наблюдая за Суперкубком, и подумал, что напишу блог об условных операторах в JavaScript. Недавно я подал заявку на роль ассистента на учебном курсе по кодированию nucamp, поэтому я думал о том, как объяснить некоторые из самых основных концепций кодирования людям, которые, возможно, только начинают свой путь в программировании.

В конце концов я прошел через процесс создания моего первого пакета NPM из командной строки, создавая забавную небольшую программу, которая сообщает вам, кто выиграет Суперкубок.

Я покажу вам процесс, через который я прошел, когда создавал это, и, надеюсь, это вдохновит вас на создание вашего первого пакета NPM! Кроме того, я разработал это для новичков, поэтому я также включил свой список поисковых запросов Google в конце, чтобы вы могли сделать это самостоятельно. Привыкайте много «гуглить», если хотите начать программировать!

Первое, что я сделал, это создал функцию, которая берет две команды и выводит на консоль сообщение о том, какая команда выиграла игру и с большим количеством очков.

Я знал, что мне нужна функция, которая брала бы два объекта (две футбольные команды) и выводила, кто выиграл. Но потом я подумал: «Почему бы не создать два класса, суперкубок и команду, и сделать функцию, которую я только что создал, методом класса в классе суперкубка? Таким образом, я могу играть с импортом и экспортом файлов. Я давно не делал этого с простым JavaScript».

Так вот что я сделал! Сначала я создал класс SuperBowl и сделал функцию whoWon методом класса в классе SuperBowl.

Затем я создал класс Team.

В нижней части этого файла происходит то, что я экспортирую или делаю возможным доступ к классу Team из другого файла.

Затем я создал файл index.js.

В верхней части этого файла происходит то, что я в основном извлекаю код из классов Team и SuperBowl, чтобы использовать его в файле index.js.

Затем я создаю новый экземпляр класса SuperBowl и сохраняю его в переменной/привязке «SuperBowlLIV».

Затем я создаю два новых экземпляра класса Team и инициализирую их претендентами на Суперкубок этого года.

Затем я вызываю метод класса whoWon, который я создал для класса SuperBowl, передавая девяток и вождей в качестве аргументов.

Когда я впервые запустил этот код в своем терминале, я получил ошибку из-за операторов импорта:

SyntaxError: Cannot use import statement outside a module

Поэтому я погуглил это точное сообщение об ошибке. Мне пришлось гуглить много вещей, которые я перечислю в конце этой статьи, но, короче говоря, мне нужно создать модуль!

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

npm init

(желательно, чтобы вы уже инициализировали репозиторий git в том же каталоге, что и я).

После этого я нашел только что созданный файл package.json и добавил эту пару ключ/значение на верхний уровень этого объекта.

"type": "module"

В итоге это выглядело так.

После сохранения этих изменений я смог запустить файл index.js в своем терминале, чтобы увидеть вывод самого кода.

Поздравляем Chiefs с их первой победой в Суперкубке за ДОЛГОСРОЧНОЕ время! А теперь напиши свой первый модуль и стань таким же великим, как Патрик Махоумс!

поиски в гугле, которые осветили мой путь:

  • «создание класса в javascript»
  • «Шакира»
  • «Как экспортировать класс в javascript»
  • «Как импортировать класс в javascript»
  • «как запустить файл js в терминале Mac»
  • «SyntaxError: невозможно использовать оператор импорта вне модуля»
  • «Предупреждение: чтобы загрузить модуль ES, установите type: module в package.json или используйте расширение .mjs».
  • «как изменить тип на модуль в package.json»
  • «какая версия узла поддерживает импорт»
  • «тестовая команда package.json»
  • «(узел: 32360) ExperimentalWarning: загрузчик модуля ESM является экспериментальным.

внутренние/модули/ESM/default_resolve.js:100

пусть url = moduleWrapResolve (спецификатор, parentURL);

Ошибка: не удается найти модуль»

  • «let url = moduleWrapResolve(specifier, parentURL);
  • Ошибка: не удается найти модуль»