MacOS / Linux和Windows上node_modules文件夹的访问权限

时间:2018-06-13 20:37:18

标签: node.js windows macos access-rights

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

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

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

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

1 个答案:

答案 0 :(得分:0)

这是因为在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. 将在您的主目录(.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之间工作。

希望它对您有帮助。