我正在 Mac 机器上开发一些 NodeJS 应用程序。出于测试目的,我使用 Parallels 来获取虚拟 Windows 计算机 (win 10)。
如果我在 Mac 上为项目运行 npm install
,则无法在 Windows 计算机上运行该项目,因为我遇到了 node_modules 文件夹访问被拒绝
错误。
所以我删除了 Windows 计算机上运行 npm install
的文件夹。这样我就可以运行该应用程序了。但后来在我的 mac 机器上我确实得到了例如sh:/Users/project/node_modules/.bin/nodemon:权限被拒绝
。
如何设置对 node_modules 目录的正确访问权限以使应用程序在两个操作系统上运行?
最佳答案
这是因为在 macOS 中编译的二进制文件 (.bin) 不一定也适用于 Windows。 对于您的场景,请使用 YARN。因为YARN提供离线安装。
引用链接:https://yarnpkg.com/blog/2016/11/24/offline-mirror/
在您的任一系统中安装 YARN。
npm 安装 yarn
- 在 cmd 或终端的项目文件夹中,只需输入
yarn
-Yarn 将开始解析您的包。 完成后,通过执行以下命令创建
.yarnrc
文件(Windows 和 macOS 相同)。yarn 配置设置yarn-offline-mirror ./npm-packages-offline-cache
yarn 配置设置yarn-offline-mirror-pruning true
将在您的主目录中创建
.yarnrc
文件 (macOS => ~/.yarnrc || windows => C:\{user}\.yarnrc
)。将该文件移动到您的项目中,使其仅特定于您的项目。
现在执行
yarn install
-> 结果在node_modules
文件夹和yarn.lock
文件中。另请注意,在文件夹npm-packages-offline-cache
下的主目录中,您将拥有 tarball 格式的所有依赖项。您所要做的就是将此 tarball 目录和yarn.lock提交到两个环境通用的存储库,通过重复相同的 1-5 个步骤在其他环境中设置yarn。
最后运行yarn install -offline,您将加载依赖项。
长话短说!你不能仅仅复制粘贴node_modules并让它在windows和unix之间工作。
希望对你有帮助..
关于node.js - MacOS/Linux 和 Windows 上的 node_modules 文件夹的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50845898/