实用指南:Windows 环境下为银河麒麟(Linux ARM64)生成 node_modules 依赖

news/2025/11/26 13:45:56/文章来源:https://www.cnblogs.com/gccbuaa/p/19272522

使用 Docker 构建。这是在 Windows 环境下为银河麒麟(Linux ARM64)生产正确 node_modules 依赖文件夹的最规范、最可靠的方法。

方案核心思想

利用 Docker 的跨平台构建能力,我们在 Windows 主机上启动一个容器,但这个容器内部模拟的是一个 Linux ARM64 的环境。在这个“仿真的”目标环境中执行 npm install,所有下载的依赖包,特别是包含二进制文件的可选依赖(如 @rollup/rollup-linux-arm64-gnu),都会是适用于 Linux ARM64 架构的正确版本。

准备工作

  1. 安装 Docker Desktop for Windows:
    · 前往 Docker 官网 下载并安装。
    · 安装完成后,启动 Docker Desktop。确保它在后台运行(系统托盘区有 Docker 鲸鱼图标)。
  2. 确保项目结构清晰: 你的 Vue 项目目录结构应该大致如下:
    my-vue-app/          # 项目根目录
    ├── node_modules/    # 【现有错误的,可以忽略或先删除】
    ├── src/             # 源码目录
    ├── package.json     # 项目依赖定义文件
    ├── vite.config.ts  # Vite 配置文件
    └── ...             # 其他文件

详细步骤

第 1 步:创建 Dockerfile

在项目根目录下创建一个名为 Dockerfile 的文件(没有后缀)。这个文件是告诉 Docker 如何构建环境的指令集。

# 使用一个官方 Node.js 的 Alpine 版本,并指定目标平台为 linux/arm64。
# Alpine 版本非常小巧,适合作为基础镜像。
# 注意:--platform 标志强制 Docker 为我们模拟 ARM64 环境。
FROM --platform=linux/arm64 node:20-alpine
# 在容器内设置工作目录,所有后续命令都将在此目录下执行
WORKDIR /app
# 首先,只复制 package.json 和 package-lock.json (如果存在)
# 这一步利用 Docker 的缓存机制:只有当 package.json 发生变化时,才会重新执行 npm install,极大加速后续构建。
COPY package*.json ./
# 在容器内运行命令,安装所有依赖(包括 devDependencies)
# 如果内网需要代理,可以在这里添加参数,例如:
# RUN npm install --registry=https://your-internal-registry.npm.com/
RUN npm install
# (可选)将整个项目目录复制到容器的工作目录
# 我们目前只需要 node_modules,所以这一步严格来说不是必须的,但为了方便后续可能的完整镜像构建,这里先写上。
COPY . .
# (可选)设置环境变量,强制 Rollup 使用纯 JS 版本,避免任何潜在的本地绑定问题,作为双重保险。
ENV ROLLUP_DISABLE_NATIVE=true
# 由于我们只是用来提取 node_modules,所以不需要指定默认的启动命令。
# 但如果要测试,可以取消下一行的注释:
# CMD ["npm", "run", "dev"]

第 2 步:构建 Docker 镜像

打开 PowerShell 或 CMD,导航到你的项目根目录(Dockerfile 所在的位置)。

运行以下命令来构建 Docker 镜像。-t 参数给镜像打一个标签名,便于识别。

docker build --platform linux/arm64 -t my-vue-app-arm64 .

· --platform linux/arm64:至关重要。它指示 Docker 为 Linux ARM64 架构构建镜像,并在当前 Windows 系统上通过模拟器实现。
· -t my-vue-app-arm64:将镜像命名为 my-vue-app-arm64。
· .:最后一个点表示构建上下文是当前目录。

Docker 将开始执行 Dockerfile 中的指令。你会看到它拉取 Node.js 的 Alpine 基础镜像,然后执行 npm install。这将花费一些时间。

第 3 步:从镜像中提取 node_modules

镜像构建成功后,我们需要把容器里已经安装好的 node_modules 目录复制到 Windows 主机上。

  1. 创建一个临时容器并复制文件: 运行以下命令:
    # 1. 基于刚构建的镜像创建一个临时容器,并将其命名为 "temp-container"
    docker create --platform linux/arm64 --name temp-container my-vue-app-arm64
    # 2. 将容器中的 /app/node_modules 目录复制到当前目录下的 ./node_modules_arm64 文件夹
    docker cp temp-container:/app/node_modules ./node_modules_arm64
    # 3. 清理临时容器
    docker rm temp-container
    现在,你的项目根目录下会出现一个全新的 node_modules_arm64 文件夹。

第 4 步:部署到内网银河麒麟系统

  1. 重命名与打包:
    · 将 Windows 上的 node_modules_arm64 文件夹重命名为 node_modules。
    · 重要:删除你原来的、有问题的 node_modules 文件夹(如果你还有的话)。
    · 将整个项目文件夹(包含新的、正确的 node_modules 以及你的源码)打包成 .tar.gz 或 .zip 文件。
    # 例如,在 PowerShell 中可以使用 Compress-Archive
    Compress-Archive -Path .\my-vue-app\* -DestinationPath .\my-vue-app-for-kylin.zip
  2. 传输与解压:
    · 将打包好的文件通过U盘、内网传输工具等方式拷贝到银河麒麟系统中。
    · 在银河麒麟系统上解压文件。
  3. 最终权限修复(在银河麒麟上执行): 即使 Docker 中安装的依赖架构正确,文件权限在压缩-传输-解压过程中仍可能发生变化。因此,在银河麒麟系统上,进入项目目录,必须执行以下命令:
    # 进入项目目录
    cd /path/to/your/my-vue-app
    # 为所有 CLI 工具(如 vite, rollup 等)添加可执行权限
    chmod -R +x node_modules/.bin/
  4. 运行项目:
    npm run dev
    现在,项目应该可以正常启动,不会再出现 Permission denied 或找不到 linux-arm64-gnu 模块的错误。

优势总结

· 环境一致性:确保了开发、构建和生产环境的高度一致,避免了“在我电脑上是好的”这类问题。
· 依赖正确性:100% 获得适用于目标平台(Linux ARM64)的正确依赖版本。
· 可重复性:Dockerfile 记录了构建环境的精确定义,整个过程可以被任何人、在任何时间重复,结果完全相同。
· 高效利用缓存:Docker 层缓存机制使得在依赖未变更时,后续构建速度极快。

这个方案虽然前期需要学习一些 Docker 的基本概念,但它是一次投入、长期受益的最佳实践,特别适合内网开发和跨平台部署的场景。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/977147.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从数据洞察到财务收益:MyEMS 如何通过 AI 优化调度帮助企业将能效提升转化为真金白银

在 “双碳” 目标深化推进与能源成本持续高企的当下,“降本增效” 已成为企业生存与发展的核心命题。然而,多数企业在能效管理中仍面临 “数据孤岛难打通、调度决策靠经验、能效提升难落地” 的困境 —— 明明知道能…

2025年11月英语学习软件推荐:从零基础到流利口语,最好的学英语软件全攻略

2025年11月英语学习软件推荐:从零基础到流利口语,最好的学英语软件全攻略在探索英语学习的道路上,选择合适的英语学习软件工具往往能让我们事半功倍。面对市场上琳琅满目的英语学习应用,许多英语爱好者都希望找到既…

RAG项目实战:基于图文PDF的多模态问答RAG项目(二)之向量库建设

在完成上面的文档解析和chunk之后,需要做的工作是存储入库。 1. 是什么存储入库的?# json [{"id": "艾力斯-公司深度报告商业化成绩显著产品矩阵持续拓宽-25070718页_page_0","content&quo…

【SAE出版|EI检索|北京航天航空大学主办】第六届应用力学与机械工程国际学术会议(ICAMME 2025)

ICAMME 已经成功举办5届,第六届应用力学与机械工程国际学术会议(ICAMME 2025)将由北京航空航天大学主办,于2025年12月12-14日在中国北京市召开。【SAE出版 | 高录用 | 快见刊 | EI稳检索】 【EI检索快且稳定,预计…

高频电流探头频率响应特性及其影响因素深度分析

高频电流探头频率响应受磁芯、绕组和信号调理影响,需优化以提升测量精度与可靠性。高频电流探头是现代电力电子和高速数字系统调试中不可或缺的关键工具。其频率响应特性直接决定了测量结果的准确性和可靠性。本文将系…

C++ 基础学习总结:从入门到构建核心认知 - 实践

C++ 基础学习总结:从入门到构建核心认知 - 实践2025-11-26 13:35 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

题解:P14598 [COCI 2025/2026 #2] 搭塔 / Tornjevi

题目大意 原题链接:https://www.luogu.com.cn/problem/P14598 题解:https://www.luogu.com.cn/article/f8ame8nw 给你一个 01 序列,然后对于一个点,它只能从前面选一个与它不同的点连接。问最少有几条链在一个区间…

2025英语自学软件推荐:AI时代,用这些工具让你的学习效率翻倍

2025英语自学软件推荐:AI时代,用这些工具让你的学习效率翻倍在英语自学的道路上,选择合适的英语自学软件如同找到了一位随时陪伴的良师益友。面对众多学习应用,如何找到真正适合独立学习的工具,成为许多自学者的首…

2025 年 11 月工时管理系统/软件实力推荐榜:高效工时管理软件,智能工时统计系统,企业工时管理平台精选与深度解析

2025 年 11 月工时管理系统/软件实力推荐榜:高效工时管理软件,智能工时统计系统,企业工时管理平台精选与深度解析 行业背景与发展趋势 随着数字化转型的深入发展,工时管理已成为企业精细化运营的核心环节。现代工时…

Google推出适用于Go的Agent开发工具包 - 公众号

本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续!🚀 魔都架构师 | 全网30W技术追随者 🔧 大厂分布式系统/数据中台实战专家 🏆 主导交易系统百万级流量调优 & 车联网平台架构 🧠 AIGC应用…

2025年质量好的大冰花钛杯厂家推荐及选择指南

2025年质量好的大冰花钛杯厂家推荐及选择指南行业背景与市场趋势随着消费者健康意识的提升和消费升级趋势的持续,钛制水杯市场近年来呈现爆发式增长。根据中国轻工业协会2024年发布的《中国杯壶行业发展白皮书》,202…

2025年评价高的化工厂清淤机器人高评价厂家推荐榜

2025年评价高的化工厂清淤机器人高评价厂家推荐榜行业背景与市场趋势随着我国化工行业的快速发展,环保要求日益严格,化工厂清淤作业正面临着效率与安全的双重挑战。据中国环保产业协会2024年数据显示,我国工业清淤市…

2025年质量好的全自动opp束带机最新TOP品牌厂家排行

2025年质量好的全自动OPP束带机最新TOP品牌厂家排行行业背景与市场趋势随着全球制造业自动化水平的不断提升,包装机械行业迎来了前所未有的发展机遇。根据国际包装机械协会(PMMI)最新发布的《2025全球包装机械市场报…

2025年口碑好的斯诺克台球桌厂家最新TOP排行榜

2025年口碑好的斯诺克台球桌厂家最新TOP排行榜行业背景与市场趋势斯诺克台球作为一项兼具竞技性与娱乐性的运动,近年来在中国市场持续升温。根据中国台球协会最新发布的《2024-2025中国台球产业发展报告》显示,2024年…

2025年评价高的衣柜灯热门厂家推荐榜单

2025年评价高的衣柜灯热门厂家推荐榜单 行业背景与市场趋势 随着家居智能化与个性化需求的提升,衣柜灯作为功能性照明与装饰性照明的结合体,近年来市场增长显著。据《2024-2025中国家居照明行业白皮书》显示,衣柜…

2025年口碑好的化工原料烘干机厂家最新权威实力榜

2025年口碑好的化工原料烘干机厂家最新权威实力榜行业背景与市场趋势化工原料烘干机作为化工生产过程中的关键设备,其性能直接影响产品质量和生产效率。根据中国化工机械行业协会最新发布的《2024-2025年中国化工干燥…

110_尚硅谷_包的引出和使用原理

110_尚硅谷_包的引出和使用原理1.包的介绍 2.包的流程图 3.包的原理图

2025年耐用的铠装变形缝厂家最新TOP实力排行

2025年耐用的铠装变形缝厂家最新TOP实力排行行业背景与市场趋势随着我国建筑行业的持续发展和基础设施建设的不断推进,铠装变形缝作为建筑结构中的重要组成部分,其市场需求呈现稳定增长态势。据中国建筑材料联合会最…

2025年热门的透明封箱胶带厂家最新实力排行

2025年热门的透明封箱胶带厂家最新实力排行行业背景与市场趋势透明封箱胶带作为包装行业的基础耗材,近年来随着电商物流、制造业和零售业的蓬勃发展,市场需求持续增长。据中国包装联合会最新数据显示,2024年我国胶带…

韩语学习APP推荐:2025学韩语的软件哪个最好?韩语自学神器测评解析

韩语学习APP推荐:2025学韩语的软件哪个最好?韩语自学神器测评解析学习韩语的热潮随着文化交流而持续升温,无论是被K-pop吸引,还是对韩剧着迷,选择一款合适的韩语自学软件能让语言学习之路更加顺畅。面对琳琅满目的…