node.js - NPM 无法在 Windows 10 主机上的 Ubuntu 下处理 Virtualbox 共享文件夹
问题描述
我正在尝试使用 Vagrant 在 Virtualbox 机器上设置开发环境。我将 Windows 10 用作主机,将 ubuntu/bionic64 用作来宾机器。
我的package.json
文件位于主机和来宾机器之间的共享目录下。但是,每当我运行时,npm install --no-bin-links
我都会收到以下错误:
npm ERR! code ENOENT
npm ERR! syscall open
npm ERR! path /home/vagrant/www/wp-content/plugins/my-plugin/node_modules/array-initial/node_modules/is-number/package.json.1640612897
npm ERR! errno -2
npm ERR! enoent ENOENT: no such file or directory, open '/home/vagrant/www/wp-content/plugins/my-plugin/node_modules/array-initial/node_modules/is-number
/package.json.1640612897'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent
npm ERR! A complete log of this run can be found in:
npm ERR! /home/vagrant/.npm/_logs/2021-01-19T05_31_47_272Z-debug.log
在来宾机器内部,如果我将package.json
and复制package-lock.json
到另一个未共享的目录中,然后运行npm install
一切正常。
mkdir /tmp/test/
cp package.json package-lock.json /tmp/test/
cd /tmp/test/ && npm install
# NPM Packages are installed successfully!
我认为这个错误是特定于 Windows 的,因为我多年来一直是 Ubuntu 的用户,并且从未遇到过类似的问题。我一周前才开始使用 Windows。
奇怪的是,我在同一台机器上还有另一个开发环境,而且 NPM 工作正常,共享文件夹没有任何问题!
我使用了--no-bin-links
,所以我认为这个问题与符号链接没有任何关系。
查看strace
输出,我看不到这个文件node_modules/array-initial/node_modules/is-number /package.json.1640612897
是什么时候创建的。
解决方案
推荐阅读
- symfony - VichUploaderBundle 和 Symfony:从 JPG 获取 exif
- css - 多个嵌套的flex:不能限制高度
- java - 如何添加 5x5 矩形表格
- r - 有没有办法在 ggarrange 中包装情节标题?
- python - Matplotlib pyplot 冻结,除了 Spyder 上的白屏外不显示任何内容
- python - 使用 elasticsearch_dsl 使用“must_not exists”
- autohotkey - 宏代码无缘无故地向下和向上发送意外的 shift 键
- python - Pygame - 画线。双摆的跟踪路径被摆本身绘制 - 我该如何防止这种情况?
- python - 序列化模型以在 Django 中与 Chart.js 一起使用
- javascript - 将同一数组中的对象合并为两个具有不同键的对象