Встановлення WebAssembly локально

Дізнайтеся, як встановити WebAssembly локально, щоб розвʼязувати вправи Exercism на власному компʼютері


Цей трек скрізь покладається на Node.js, щоб забезпечити середовище виконання для WebAssembly. Тобто ми припускаємо, що весь JavaScript на компʼютері виконуватиметься за допомогою Node.js.

Вимоги до треку

Багато машин уже мають встановлений Node.js, або його могли встановити раніше чи як залежність. Тож перш ніж щось робити, варто перевірити, чи він уже встановлений:

  1. Відкрийте термінал (Terminal, cmd, Powershell, bash, ...)
  2. Виконайте node -v

Якщо Node.js встановлено, відобразиться версія. Запишіть цю версію. Якщо Node.js не встановлено, зʼявиться повідомлення про помилку. Зазвичай приблизно таке: 'node' is not recognised.

Node.js

Якщо Node.js уже встановлено

Перейдіть на сайт Node.js. Він покаже дві версії (якщо сайт визначить операційну систему; інакше спершу виберіть її зі списку). Якщо версія з node -v збігається з однією з них, усе гаразд. Якщо ні, радимо використати Node.js LTS. Якщо є побоювання, що оновлення щось зламає в системі, можна продовжити так, ніби все гаразд; щоправда, якщо станеться щось несподіване, ми можемо не мати змоги надати підтримку.

Якщо Node.js не встановлено

Node.js можна встановити кількома способами:

Обидва варіанти працюють у Windows, macOS і Linux. Якщо незрозуміло, що робити, найпростіше скористатися інсталятором.

  • Радимо використовувати версію LTS. На сайті Node.js її також позначено як рекомендовану «для більшості користувачів».
  • Дотримуйтеся інструкцій на вебсторінці та/або в інсталяторі й установіть Node.js.

Перевірка встановлення

Коли інсталятор завершить роботу, менеджер пакетів виконає своє завдання, а бінарний файл буде скопійовано та інструкції виконано, варто перевірити, чи все гаразд.

  1. Відкрийте термінал (Terminal, cmd, Powershell, bash, ...)
  2. Виконайте node -v

Версія має збігатися з тією, що на сайті.

Примітка: важливо відкрити нове вікно термінала. Уже відкриті вікна термінала могли не оновитися після завершення встановлення. Тобто відкриті термінали не знають, що встановлено нову програму.

Довідка: 'node' is not recognised

Якщо використано офіційний інсталятор, PATH мав налаштуватися автоматично; але якщо оболонка не може знайти глобально встановлені модулі, або якщо Node.js зібрано з вихідного коду, оновіть PATH, щоб він містив бінарні файли npm.

У macOS і Linux це можна зробити, додавши наведене нижче до ~/.bash_profile або ~/.zshrc:

export PATH=/usr/local/share/npm/bin:$PATH

У Windows відкрийте меню Start і знайдіть «environment variables». Потрібно відредагувати запис PATH і додати сюди шлях до бінарних файлів npm. Зазвичай вони містяться в C:\Program Files\nodejs. Якщо переглянути цю теку в File Explorer, там мають бути node.exe, npm.bat і npx.bat.

Закрийте всі відкриті термінали й відкрийте новий.

Вимоги до вправи

Щоб завантажити Exercism CLI для своєї ОС, дотримуйтеся цих інструкцій.

Коли CLI встановлено й налаштовано, завантажте першу вправу: hello-world:

exercism download --exercise=hello-world --track=wasm

Далі кожній вправі потрібні певні інструменти, щоб запускати тести. Їх можна встановити, виконавши цю команду в теці кожної вправи:

npm install

Довідка: '<package>' is missing / cannot be found

Якщо це зʼявилося після оновлення вправи, вітаємо в npm 7. Видаліть node_modules і package-lock.json та виконайте команду знову, щоб це виправити.

Якщо турбує місце на диску й можна встановити ще один інструмент, зверніть увагу на pnpm, який гарантує, що на диску зберігатиметься лише одна копія кожної версії пакета. У такому разі виконайте pnpm install замість npm install, і все має працювати як слід.

Але що таке npm і чому це працює?

Щоб пройти трек JavaScript, ця інформація не потрібна, але якщо кортить зрозуміти, що щойно сталося, читайте далі:

Це працює тому, що npm - це менеджер пакетів, який постачається разом із Node.js, встановленим за кроками вище. Команда npm шукає файл package.json, який є в кожній теці вправи. Цей файл перелічує "dependencies", наведені вище, які npm потім завантажує й кладе в теку node_modules.

Скрипти в package.json використовують бінарні файли з локальної теки node_modules, і саме ці скрипти запускають тести, як зазначено в описі exercise.