如何不使用命令行下载npm包以应用于完全离线开发环境
离线环境npm包手动下载及使用方案
方法1:单包手动下载安装(对应Python下载.whl的使用场景)
这是和你Python开发流程最接近的方案,步骤如下:
- 联网环境访问npmjs平台,搜索目标npm包,进入对应包的详情页
- 切换到
Versions标签页,选择你需要的版本,点击版本号右侧的下载按钮,即可获取该包对应版本的.tgz格式压缩包 - 将所有需要的
.tgz包通过可移动存储设备转移到离线环境 - 离线环境下执行命令
npm install 本地路径/包名-版本号.tgz即可完成安装,需要全局安装时添加-g参数即可
方法2:项目级依赖批量迁移(适合完整React项目开发)
如果需要一次性迁移整个React项目的所有依赖,可以用这套流程:
- 联网环境安装和离线环境完全相同版本的Node.js、npm工具
- 新建空项目,把你需要的所有依赖(包含精确版本号)写入项目的
package.json文件 - 执行
npm install完成所有依赖的安装,在本地先验证项目可以正常运行 - 可以选择两种方式迁移:
- 直接将整个
node_modules文件夹拷贝到离线环境的对应项目目录下,无需额外安装操作即可直接使用(仅推荐联网和离线环境操作系统、Node版本完全一致时使用,避免二进制依赖兼容性问题) - 执行
npm pack命令,会将当前项目所有依赖的.tgz包统一导出到当前目录,转移到离线环境后可以批量执行本地安装操作
- 直接将整个
方法3:本地私有npm源搭建(适合长期离线开发场景)
如果需要长期在离线环境进行前端开发,可以搭建本地私有npm源实现类联网的安装体验:
- 联网环境使用
verdaccio等轻量私有npm源工具,将所有需要用到的npm包同步到本地私有源中 - 将私有源的程序文件、缓存的包数据目录整体转移到离线环境的服务器上启动服务
- 将离线环境所有开发设备的npm源配置修改为本地私有源地址,之后就可以正常使用
npm install命令安装包,无需连接公网
注意事项
- 下载包时需要确认包的所有子依赖版本匹配,建议在联网环境先跑通完整项目再进行依赖迁移,减少离线环境下的兼容性排查成本
.tgz格式的npm包无需解压,直接通过npm install指定本地路径安装即可,npm会自动处理依赖关联- 涉及
sass、esbuild等包含二进制文件的依赖,必须保证下载包的运行环境和离线环境一致,否则会出现运行报错
内容的提问来源于stack exchange,提问作者Benny
相关产品推荐
相关产品推荐

