node.js - MacOS/Linux 和 Windows 上的 node_modules 文件夹的访问权限

标签 node.js windows macos access-rights

我正在 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。

  1. npm 安装 yarn
  2. 在 cmd 或终端的项目文件夹中,只需输入 yarn
    -Yarn 将开始解析您的包。
  3. 完成后,通过执行以下命令创建 .yarnrc 文件(Windows 和 macOS 相同)。

    yarn 配置设置yarn-offline-mirror ./npm-packages-offline-cache

    yarn 配置设置yarn-offline-mirror-pruning true

  4. 将在您的主目录中创建 .yarnrc 文件 (macOS => ~/.yarnrc || windows => C:\{user}\.yarnrc)。

  5. 将该文件移动到您的项目中,使其仅特定于您的项目。

  6. 现在执行yarn install -> 结果在node_modules文件夹和yarn.lock文件中。另请注意,在文件夹 npm-packages-offline-cache 下的主目录中,您将拥有 tarball 格式的所有依赖项。

  7. 您所要做的就是将此 tarball 目录和yarn.lock提交到两个环境通用的存储库,通过重复相同的 1-5 个步骤在其他环境中设置yarn。

  8. 最后运行yarn install -offline,您将加载依赖项。

长话短说!你不能仅仅复制粘贴node_modules并让它在windows和unix之间工作。

希望对你有帮助..

关于node.js - MacOS/Linux 和 Windows 上的 node_modules 文件夹的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50845898/

相关文章:

c - 如何从命令行运行 Visual Studio 调试器?

macos - 以编程方式或通过 Mac 上的命令行发现当前用户的屏幕保护程序超时

c++ - 如何使用C或C++在Mac上模拟鼠标移动和鼠标点击

objective-c - 在 10.10 Yosemite 中禁用/自定义 NSPopUpButton 动画

javascript - OAuth2 : Discord API always responds with {"error": "invalid_grant"}

node.js - 如何通过 sudo 在生产模式下运行 node.js Express?

javascript - Nodejs 有没有办法以 JSON 格式打印 log4js 输出?

android - 在 Android 应用程序 (HTML5 JavaScript PhoneGap) 中使用 NodeJS 是一个好的决定吗?

windows - MS Windows 中的 HKLM 代表什么?

java - 为什么我可以获得控制面板中未定义的环境变量