Home >Web Front-end >JS Tutorial >Let's talk about how to use pkg to package Node.js projects into executable files.

Let's talk about how to use pkg to package Node.js projects into executable files.

青灯夜游
青灯夜游forward
2022-12-02 21:06:015142browse

How to package nodejs executable file with pkg? The following article will introduce to you how to use pkg to package the Node project into an executable file. I hope it will be helpful to you!

Let's talk about how to use pkg to package Node.js projects into executable files.

Using pkg, you can package your Node.js project into an executable file that can even be run on devices where Node.js is not installed. [Related tutorial recommendations: nodejs video tutorial]

Experimental environment

  • Operating system: windows

  • node version: 16.14.2

##Operation process

  • Download PKG

We can choose to install it globally and execute it in any directory:

$ npm install -g pkg
  • Packaging program

Write a simple program first, such as server.js content

const express = require('express');
const app = express();

app.get('/', (req, res) => {
    res.send('Hello World!');
});

app.listen(3000, () => {
    console.log('Express web app on localhost:3000');
});
Enter the nodejs project root directory and execute the following command

$ pkg server.js

First time Error

At this time, an error will be reported

$ pkg server.js
> pkg@5.6.0
> Targets not specified. Assuming:
  node16-linux-x64, node16-macos-x64, node16-win-x64
> Fetching base Node.js binaries to PKG_CACHE_PATH
  fetched-v16.14.2-linux-x64          [                    ] 0%> Not found in remote cache:
  {"tag":"v3.3","name":"node-v16.14.2-linux-x64"}
> Building base binary from source:
  built-v16.14.2-linux-x64
> Error! Not able to build for 'linux' here, only for 'win'
The main idea is that the current environment only supports executable files compiled into windows systems, that is, the win

adjustment instructions are:

$ pkg -t win server.js
Where -t win is equivalent to --targets win, which means that files are only compiled for windows.

Second error report

An error message was reported again during compilation:

$ pkg -t win server.js
> pkg@5.6.0
> Fetching base Node.js binaries to PKG_CACHE_PATH
  fetched-v16.14.2-win-x64            [                    ] 0%> Not found in remote cache:
  {"tag":"v3.3","name":"node-v16.14.2-win-x64"}
> Building base binary from source:
  built-v16.14.2-win-x64
> Fetching Node.js source archive from nodejs.org...
> Error! AssertionError [ERR_ASSERTION]: The expression evaluated to a falsy value:
The main idea is that the corresponding binary file fetched-v16.14.2-win is missing from the cache -x64, we just need to download the corresponding file and put it in the corresponding cache directory.

1. Go to the

official website to download the corresponding version file. For example, mine is node-v16.14.2-win-x64

Official website address: https://github.com /vercel/pkg-fetch/releases

Lets talk about how to use pkg to package Node.js projects into executable files.

2. Rename the file node-v16.14.2-win-x64 downloaded in the previous step to fetched-v16.14.2-win -x64, put it in the current user's cache directory.

For example, my cache directory is

C:\Users\MangoDowner.pkg-cache. After splicing the fetch tag, it becomes the final directory. Refer to the information in the error report to get The tag is v3.3

 {"tag":"v3.3","name":"node-v16.14.2-win-x64"}
We can get the final parent directory as C:\Users\MangoDowner.pkg-cache\v3.3,

So the final file address is C:\Users\MangoDowner .pkg-cache\v3.3\fetched-v16.14.2-win-x64

Compile again, success!

$ pkg -t win server.js
> pkg@5.6.0
For more node-related knowledge, please visit:

nodejs tutorial!

The above is the detailed content of Let's talk about how to use pkg to package Node.js projects into executable files.. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:segmentfault.com. If there is any infringement, please contact admin@php.cn delete