【发布时间】:2016-09-06 09:02:41
【问题描述】:
问题:
如何在不使用 npm 的情况下手动安装 NodeJS 包(如 grunt-cli)?
环境:
- 我已经安装了带有“Bash on Ubuntu on Windows”的 Windows 10。
- 我已经在没有 Bash 的“普通”Windows 环境中成功安装了 NodeJS + Grunt。
- NodeJS 安装在 bash 环境(Linux 子系统)
- Grunt 尚未安装在(Linux 子系统)中
背景(为什么):
我同事的 grunt 任务是为 Ubuntu 环境开发的,并直接调用 bash 命令,这显然在“正常”Windows 环境中不起作用。这是一个实验,看看是否可以在“Windows 上的 Ubuntu 上的 Bash”中运行他的 grunt 任务,但是,我被困在 npm 尝试下载包的部分(Linux 子系统尚不支持网络库,所以curl 等命令不起作用)。
我希望通过手动将下载的版本从 Windows 环境(或 GitHub)复制到 Linux 子系统的“node_modules”目录中来“跳过”npm 的下载部分。
但是,我不知道如何配置 npm,因为添加了一个新包并且它现在可以使用该包。
【问题讨论】:
-
我通过编辑 /usr/lib/node_modules/npm/node_modules/npmconf/config-defs.js 找到了我的问题的另一个解决方案,并将所有调用 os.networkInterfaces() 的行替换为硬编码对象(从本机 Windows 的 Nodejs 版本复制)。现在 npm 的行为似乎符合预期。
标签: node.js linux windows bash gruntjs