node: init packages-25.12

Signed-off-by: sbwml <admin@cooluc.com>
This commit is contained in:
sbwml
2026-05-04 17:05:27 +08:00
commit fe70be2e61
2 changed files with 124 additions and 0 deletions
+113
View File
@@ -0,0 +1,113 @@
#
# Copyright (C) 2006-2017 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=node
PKG_VERSION:=$(shell curl -s https://api.github.com/repos/sbwml/node_workflow/tags | grep '"name"' | head -n 1 | sed -E 's/.*"name": "v([^"]+)".*/\1/')
PKG_RELEASE:=1
PKG_MAINTAINER:=Hirokazu MORIKAWA <morikw2@gmail.com>, Adrian Panella <ianchi74@outlook.com>
PKG_LICENSE:=MIT
PKG_LICENSE_FILES:=LICENSE
PKG_CPE_ID:=cpe:/a:nodejs:node.js
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/package.mk
define Package/node
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Node.js
TITLE:=Node.js is a platform built on Chrome's JavaScript runtime
URL:=https://nodejs.org/
DEPENDS:=@USE_MUSL @HAS_FPU @(i386||x86_64||arm||aarch64) \
+libstdcpp +libopenssl +zlib +libnghttp2 \
+libcares +libatomic
endef
define Package/node/description
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. Node.js uses
an event-driven, non-blocking I/O model that makes it lightweight and efficient. Node.js'
package ecosystem, npm, is the largest ecosystem of open source libraries in the world.
*** The following preparations must be made on the host side. ***
1. gcc 12.2 or higher is required.
2. To build a 32-bit target, gcc-multilib, g++-multilib are required.
3. Requires libatomic package. (If necessary, install the 32-bit library at the same time.)
ex) sudo apt-get install gcc-multilib g++-multilib
endef
define Package/node-npm
SECTION:=lang
CATEGORY:=Languages
SUBMENU:=Node.js
TITLE:=NPM stands for Node Package Manager
URL:=https://www.npmjs.com/
DEPENDS:=+node
endef
define Package/node-npm/description
NPM is the package manager for NodeJS
endef
ifeq ($(HOST_ARCH),x86_64)
NODE_HOST_ARCH:=x64
endif
ifeq ($(HOST_ARCH),aarch64)
NODE_HOST_ARCH:=arm64
endif
define Host/Compile
( \
pushd $(HOST_BUILD_DIR) ; \
$(RM) node-v* ; \
wget https://nodejs.org/dist/v$(PKG_VERSION)/node-v$(PKG_VERSION)-linux-$(NODE_HOST_ARCH).tar.xz ; \
$(TAR) -xf node-v$(PKG_VERSION)-linux-$(NODE_HOST_ARCH).tar.xz ; \
popd ; \
)
endef
define Build/Compile
( \
pushd $(PKG_BUILD_DIR) ; \
wget https://github.com/sbwml/node_workflow/releases/download/v$(PKG_VERSION)/$(ARCH_PACKAGES).tar.gz ; \
$(TAR) -zxf $(ARCH_PACKAGES).tar.gz ; \
$(STAGING_DIR_HOST)/bin/apk extract --allow-untrusted *.apk ; \
$(RM) *.tar.gz *.apk ; \
popd ; \
)
endef
define Package/node/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/usr/bin/node $(1)/usr/bin/
endef
define Package/node-npm/install
$(INSTALL_DIR) $(1)/usr/lib/node_modules/npm
$(CP) $(PKG_BUILD_DIR)/usr/lib/node_modules/npm/{package.json,LICENSE} \
$(1)/usr/lib/node_modules/npm/
$(CP) $(PKG_BUILD_DIR)/usr/lib/node_modules/npm/README.md \
$(1)/usr/lib/node_modules/npm/
$(CP) $(PKG_BUILD_DIR)/usr/lib/node_modules/npm/{node_modules,bin,lib} \
$(1)/usr/lib/node_modules/npm/
$(INSTALL_DIR) $(1)/usr/bin
$(LN) ../lib/node_modules/npm/bin/npm-cli.js $(1)/usr/bin/npm
$(LN) ../lib/node_modules/npm/bin/npx-cli.js $(1)/usr/bin/npx
endef
define Host/Install
$(CP) $(HOST_BUILD_DIR)/node-v$(PKG_VERSION)-linux-$(NODE_HOST_ARCH)/* $(STAGING_DIR_HOST)/
endef
$(eval $(call HostBuild))
$(eval $(call BuildPackage,node))
$(eval $(call BuildPackage,node-npm))
+11
View File
@@ -0,0 +1,11 @@
## openwrt-25.12 - Fast Build for Node.js Dependent Packages
When building packages that require Node.js on the OpenWrt branch, use the prebuilt Node.js feed instead of compiling Node.js from source. This approach significantly reduces build time and ensures compatibility with dependent packages.
```bash
# remove the default Node.js feed
rm -rf feeds/packages/lang/node
# clone the prebuilt Node.js feed (packages-25.12 branch)
git clone https://github.com/sbwml/feeds_packages_lang_node -b packages-25.12 feeds/packages/lang/node
```