【问题标题】:Access rights for node_modules folder at MacOS/Linux and WindowsMacOS/Linux 和 Windows 下 node_modules 文件夹的访问权限
【发布时间】:2018-11-23 13:08:08
【问题描述】:

我正在 Mac 机器上开发一些 nodeJS 应用程序。出于测试目的,我使用 Parallels 来获取虚拟 Windows 机(win 10)。

如果我在我的 mac 上为一个项目运行 npm install,我无法在 windows 机器上运行该项目,因为我收到了 node_modules 文件夹的 access denied 错误。

所以我删除了文件夹并在 Windows 机器上运行 npm install。有了它,我可以运行应用程序。但是然后在我的mac机器上我确实得到了例如sh: /Users/project/node_modules/.bin/nodemon: Permission denied.

如何设置对 node_modules 目录的正确访问权限以使应用程序在两个操作系统上运行?

【问题讨论】:

    标签: node.js windows macos access-rights


    【解决方案1】:

    这是因为在 macOS 中编译的二进制文件 (.bin) 不一定也适用于 windows。 对于您的方案,请使用 YARN。因为 YARN 提供离线安装。

    参考链接https://yarnpkg.com/blog/2016/11/24/offline-mirror/

    在您的任一系统中安装 YARN。

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

      yarn config set yarn-offline-mirror ./npm-packages-offline-cache

      yarn config set yarn-offline-mirror-pruning true

    4. 将在您的主目录 (macOS => ~/.yarnrc || windows => C:\{user}\.yarnrc) 中创建一个 .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 之间工作。

    希望对你有帮助..

    【讨论】:

      猜你喜欢
      • 2017-08-29
      • 2014-05-22
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2019-02-14
      • 2012-11-01
      • 2012-08-08
      • 1970-01-01
      相关资源
      最近更新 更多