我正在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目录的正确访问权限以使应用程序在两个操作系统上运行?
答案 0 :(得分:0)
这是因为在macOS中编译的二进制文件(.bin)不一定也可以与Windows一起使用。 对于您的方案,请使用YARN。因为YARN提供了离线安装。
参考链接:https://yarnpkg.com/blog/2016/11/24/offline-mirror/
在您的任何一个系统中安装YARN。
npm install yarn
yarn
完成后,通过执行以下命令创建一个.yarnrc
文件(Windows和macOS都相同)。
yarn config set yarn-offline-mirror ./npm-packages-offline-cache
yarn config set 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之间工作。
希望它对您有帮助。