С помощью Pkg вы можете упаковать свое приложение узла в один исполняемый файл для Windows, Linux или Mac. После этого вы сможете запустить приложение без установки узла.
Установите pkg глобально:
npm install -g pkg
Что нам нужно, так это указать в package.json файл, запускающий приложение с «bin»: «file.js», и, в конечном итоге, активы, которые нужно включить в исполняемый файл, в «pkg». Здесь я включаю все зависимости. Это мой файл package.json:
{ “name”: “test-app”, “version”: “1.0.0”, “description”: “”, “main”: “index.js”, “bin”: “bin.js”, “scripts”: { “test”: “echo \”Error: no test specified\” && exit 1", “start”: “node bin.js” }, “author”: “”, “license”: “ISC”, “dependencies”: { “axios”: “⁰.18.0”, “diskusage”: “¹.1.1”, “node-powershell”: “⁴.0.0”, “os”: “⁰.1.1”, “tasklist”: “³.1.1” }, “pkg”: { “assets”: [ “./node_modules/axios/**”, “./node_modules/diskusage/**”, “./node_modules/node-powershell/**”, “./node_modules/os/**”, “./node_modules/tasklist/**”, “./node_modules/diskusage/**” ] } }
Чтобы создать исполняемый файл для Windows, мы можем запустить следующую команду в корне проекта:
Если мы получаем сообщение об ошибке, что какой-то файл не может быть включен в исполняемый файл, нам придется распределить файл вместе с исполняемым файлом в той же папке. Например, я получаю сообщение об ошибке:
> [email protected] > Warning Cannot include addon %1 into executable. The addon must be distributed with executable as %2. C:\Users\user\Documents\test-app\node_modules\diskusage\build\Release\diskusage.node path-to-executable/diskusage.node
тогда я просто скопирую diskusage.node в ту же папку, где я сохраню исполняемый файл .exe, и распространю эту папку. Когда мы получаем ошибку указанного выше типа, это не препятствует созданию исполняемого файла.
В команде, используемой для создания исполняемого файла, мы можем указать цель в соответствии с:
- nodeRange node $ {n} или последним → В нашем случае это был node10
- платформа freebsd, linux, alpine, macos, win → В нашем случае win
- Arch x64, x86, armv6, armv7 → В нашем случае x64
Для получения дополнительной информации посетите: https://www.npmjs.com/package/pkg.
Если этот урок вам помог, вы можете поблагодарить меня, купив мне кофе.