我下载了 npm 包的本地副本并将其解压到桌面上。 然后我用
npm install /directory/
来安装它。
我注意到,当我删除桌面目录时,应用程序说它找不到已安装的模块。经过进一步调查,我注意到该包位于
node_modules
中,但它旁边有箭头,上面写着“符号链接”,我认为这是指向该包的桌面目录的链接。
如何独立安装它,以便它完全包含在node_modules中,从而允许我删除桌面副本?
原来你可以用
npm pack /path/to/package
这将导致 npm 将包打包到
.tgz
文件中。
然后您可以使用标准从
.tgz
文件安装它
npm install /path/to/file.tgz
这将强制 npm 在
node_modules
中创建一个本地副本,而无需符号链接
为了构建 ablaszkewicz1 的出色答案,解决方案是使用
npm pack
创建 tarball,然后使用 npm install
tarball。然而,tarball 的名称会根据包是否命名空间而有所不同,因此将其放入 shell 别名中有点棘手。
这里有一个方便的 bash 脚本,可以在您需要时随时执行此操作:
#!/bin/bash
mkdir -p /tmp/$$ &&
npm pack --pack-destination=/tmp/$$ $1 &&
NAME=`ls /tmp/$$/*tgz` &&
npm install $NAME &&
rm -rf /tmp/$$
用途:
try ../apostrophe
这将在当前项目文件夹中的相邻文件夹
../apostrophe
中安装模块。