使用Node SEA,如何将node_modules打包成可执行文件?

问题描述 投票:0回答:1

这个新的《单一可执行应用程序》功能听起来很酷,但尚不清楚如何使用 SEA 应用程序中的节点模块包。

我知道它提到了资产:

  "assets": {
    "a.jpg": "/path/to/a.jpg",
    "b.txt": "/path/to/b.txt"
  }

但是通过指向整个文件夹,这似乎不起作用:

{
  "main": "hello.js",
  "output": "sea-prep.blob",
  "assets": {
    "node_modules": "./node_modules"
  }
}

如何打包node_modules?

node.js executable
1个回答
0
投票

我可以想到几种不同的方法。您可以在本地安装依赖项或使用自定义打包脚本。
本地安装依赖项:在创建SEA可执行文件之前,您可以使用npm install或yarn install在本地安装所有依赖项。这将使用所有必需的包填充项目目录中的 node_modules 文件夹。然后,当您创建 SEA 可执行文件时,将自动包含 node_modules 文件夹。
自定义打包脚本:如果您需要对打包过程进行更多控制,您可能需要使用自定义打包脚本。您将创建一个脚本,将 node_modules 文件夹复制到项目目录中的指定位置,然后在 SEA 配置文件中引用该文件夹。这种方法允许您在 SEA 可执行文件中显式包含 node_modules 目录。像这样的想法,

{
  "main": "hello.js",
  "output": "sea-prep.blob",
  "assets": {
    "node_modules": "./assets/node_modules"
  }
}

项目结构可能看起来像这样,

project/
  ├── hello.js
  ├── sea-config.json
  ├── assets/
  │   └── node_modules/
  ├── node_modules/
  ├── package.json
  └── ...
© www.soinside.com 2019 - 2024. All rights reserved.