有一个项目在公司内网有 npm 私有包必须要在公司内网安装依赖,我在 ubuntu 内网 npm install 以后,node_modules 里面会有大量软链接,这些在我拷贝到公网的 windows 电脑会全部失效,如果不使用虚拟机请问有什么办法解决吗
![]() |
1
saranz 43 天前
package.json 是干什么用的?
|
![]() |
2
leegradyllljjjj 43 天前 ![]() 复制-粘贴,插上电源静置 2 年后就能用了
|
3
FakerLeung 43 天前
有些包分系统的,windows 不一定都能用
|
![]() |
4
mdn 42 天前
package.json package-lock.json 文件复制过去安装,最好 nodejs 版本一致
少部分非 js 包需要区分系统平台,复制过去并不能直接使用 |
5
0o0O0o0O0o 42 天前
应该是没有通用方案,和软链接无关:
https://github.com/npm/feedback/discussions/648#discussioncomment-2690230 跑个 windows 虚拟机吧 |
![]() |
6
rabbbit 42 天前
试一下 Verdaccio ,看看能不能把内网的包下来传上去
|
7
GPLer 42 天前
1. 方法一,在本地搭建 npm 私服 verdaccio ,上游地址添加公司 npm 私服地址,本地 npm registry 临时设置为 verdaccio 地址,然后安装依赖,verdaccio 会缓存下相关依赖,然后将 verdaccio 复制到出去,后续安装依赖都从 verdaccio 安装即可。
2. 方法二,ubuntu 搞个 windows 虚拟机,在 windows 虚拟机里安装依赖,然后打包复制,相同系统版本架构应该是能用的。 另外,建议不要违规操作,内网的东西就不应该搞到公网去。 |
![]() |
8
uxstone 42 天前
代码和人有一个能跑就行
|
![]() |
9
zythum 42 天前
就算软链接搞定了,其他事不一定的。install 的时候会根据系统,node 版本做不同的安装配置,比如有些下载不同的二进制依赖包,有些甚至是现编译的。并且 bin 的安装方式在 windows 下合 linux 下也是不一样的。
你可以尝试下面几种方式: 1. 公网使用 windows 的 linux 子系统安装同版本的 node 执行。 2. 在内网用 windows 并且用同一个版本的 node 去 install , 然后考到公网的 windows 执行。 3. 在内网的 ubuntu 用 docker 打镜像,把 node_module 都打到镜像里,拷贝镜像,公网 windows 也用 docker 跑。 |
![]() |
10
frencis107 42 天前 ![]() 直接用 docker ,最简单方便的方法
|
![]() |
11
xuhai951753 40 天前
我想知道如果有 bindings 、wasm 啥的不还是得重下?复制也没用吧。
|
![]() |
12
bzw875 39 天前
node_modules 有软连接是因为用 yarn 、pnpm 的安装依赖的原因。
删除 node_modules 文件夹,使用 npm install 就可以获取一个没有软连接的 node_modules |