или напишите исполняемый файл на javascript.

В npm вы можете устанавливать пакеты с исполняемыми файлами локально.

Цель этой статьи - объяснить, как запустить локально установленный исполняемый файл, а также показать некоторые удобные команды, которые я использую в своих проектах.

Поскольку вы собираетесь использовать окно терминала, я рекомендую использовать консольный эмулятор cmder, а не командную строку Windows (cmd). Намного лучше то, что предоставляет нам красочную консоль и команды Linux в Windows.

Создайте папку проекта

Используя окно терминала, создайте каталог для проекта и перейдите в этот каталог.

mkdir hello
cd hello

Создайте подпапку приложения в корневом каталоге проекта:

mkdir src
mkdir dist
mkdir bin

Создать файлы конфигурации

package.json определяет зависимости пакета npm для проекта.

npm init

Вы можете использовать npm init для создания package.json. Вам будет предложено ввести значения для полей package.json. Два обязательных поля - это имя и версия. Вы также захотите иметь значение для main. Вы можете использовать значение по умолчанию index.js.

После создания вашего package.json файла вам необходимо добавить следующее содержимое:

"main": "dist/index.js",
"bin": {
    "hello": "./bin/hello"
},
"preferGlobal": true

После этого ваш package.json должен выглядеть так:

tsconfig.json определяет, как компилятор TypeScript создает JavaScript из файлов проекта.

Создайте файл src/tsconfig.json со следующим содержанием:

Создайте свое приложение Hello

Создайте файл bin/hello (без расширения) со следующим содержимым:

Это просто означает, что сценарий должен выполняться с первым исполняемым файлом с именем «node», который находится в вашем текущем PATH.

Знак shebang (#!) В начале означает выполнение сценария следующим образом. / bin / env - это стандартная программа Unix, которая проверяет вашу текущую среду. Любой аргумент не в формате «имя = значение» является командой для выполнения. Дополнительную информацию см. На странице вашего руководства по env.

Настройка VS Code

Теперь откройте свой проект с помощью VSCode IDE. вы можете сделать это, просто используя окно терминала

code .

Сначала проверьте, есть ли все обновления и готовы ли вы использовать vscode. это можно сделать с помощью меню справки ›проверка обновлений.

Настроить - скрыть файлы .js и .js.map, если у вас есть ts файл

VS Code предоставляет две разные области для настроек:

  • Пользователь: эти настройки применяются глобально к любому открытому экземпляру VS Code.
  • Рабочее пространство: эти настройки хранятся внутри вашего рабочего пространства в папке .vscode и применяются только тогда, когда рабочее пространство открыто. Параметры, определенные в этой области, переопределяют область действия пользователя.

Вы можете выбрать, какие настройки вы хотите изменить.
Допустим, пользовательские настройки для этого приложения.

Меню в разделе ФайлНастройки (КодНастройки на Mac) содержит записи для настройки параметров пользователя и рабочего пространства. Вам предоставляется список настроек по умолчанию. Скопируйте любые настройки, которые вы хотите изменить, в соответствующий settings.json файл.

Убедитесь, что вы изменили файл settings.json (справа от VS Code IDE).

Скопируйте следующий контент в settings.json:

Сохрани и закрой.

Настроить - машинописный текст в javascript

Для этого откройте палитру команд с помощью Ctrl + Shift + P и введите Configure Task Runner, нажмите Enter, чтобы выбрать его.

Выберите TypeScript - tsconfig.json. Это создаст tasks.json файл в папке .vscode рабочей области.

Содержимое файла tasks.json выглядит так:

Такой же как:

tsc -p ./src

Сохраните tasks.json и закройте.

Напишите Hello world с VS Code

Создайте файл src/index.ts со следующим содержанием:

Теперь нажмите Ctrl + Shift + B, чтобы скомпилировать проект. Вы должны заметить, что файлы index.js и index.js.map были созданы после сборки в папке dist.

каждый раз, когда вы изменяете ts-файл, вы должны компилировать проект, чтобы vscode можно было преобразовать в javascript с помощью tsconfig.json.

потому что в нашем tsconfig.json мы установили для каталога distDir значение dist, поэтому файл компиляции должен находиться в каталоге dist.

Создать тарбол из пакета

Запустите эту команду в папке hello из окна терминала,

npm pack 

эта команда загрузит его в кеш, а затем скопирует архив в текущий рабочий каталог как <name>-<version>.tgz, а затем запишет имена файлов в стандартный вывод.

У вас должен быть файл hello-1.0.0.tgz в папке hello.

Установить пакет

npm i hello-1.0.0.tgz -g

Запустить пакет

hello

вывод должен быть

Hello World

Что только что случилось?

Сначала наш hello-пакет скопирован в глобальную папку npm.

winkey+r > appdata > navigate to Roaming\npm\node_modules

Вы можете увидеть пакет там.

Во-вторых, вы можете увидеть в папке npm два файла: hello и hello.cmd

Магия

Когда мы запускаем hello, cmd сопоставляет файл hello.cmd и выполняет его.

hello.cmd просто запустите узел с нашим файлом, как мы определили.

Это волшебство:

@IF EXIST “%~dp0\node.exe” (
 “%~dp0\node.exe” “%~dp0\node_modules\hello\bin\hello” %*
) ELSE (
 @SETLOCAL
 @SET PATHEXT=%PATHEXT:;.JS;=;%
 node “%~dp0\node_modules\hello\bin\hello” %*
)

просто как запустить: узел myfile.js

Итак, что мы узнаем?

  • как создать пакет в npm
  • конфигурация vscode для преобразования машинописных текстов
  • Как публиковать пакеты локально и использовать их.
  • как запускать файлы javascript с помощью движка узлов в командной строке.
  • Небольшой вкус знакомства с особенностями npm exec

Удачного кодирования и написания статей о кодировании!

Если вы нашли это полезным, нажмите 💚 ниже. Следуйте за мной, чтобы увидеть больше статей о технологиях и на github

Https://github.com/wizardnet972