NPM是否依赖于计算机的操作系统?

是否有可能将一组NPM安装的文件和相关文件从Mac电脑复制到Windows电脑,并使所有这些文件正常工作?

例如,将Node.js文件与其他一些NPM文件从Mac传输到Windows,然后在该目录中(在Windows命令提示符下)运行node app.js

谢谢! 🙂

包含本地插件/依赖关系的NPM包与OS + NodeJS版本绑定,必须针对您打算使用它们的系统重新构build。 这就是为什么你看到错误提到bson.node ,它是一个本地插件,必须重build,这可以通过npm rebuild命令来完成。

您安装的二进制文件npm与平台相关,与node.js相同。 这就是为什么下载站点上的每个平台都有不同的版本。

大多数情况下,您的项目文件是独立于平台的。 例如,大多数JavaScript文件都将被node.js使用,并且工作得很好,而不必担心自己在哪个平台上,因为系统细节将由node.js本身处理。

但是,一些模块依赖于平台。 例如,只要使用npm安装模块,任何使用node-gyp的东西都会尝试在您的平台上进行编译。 你不必担心,因为它是由npm处理,这就是为什么你使用包pipe理器。

复制node_modules可以完成; 但是在任何将要运行你的应用程序的机器上运行npm i更好,更容易。 你可以避免使用类似npm shrinkwrap版本问题,它会locking你的模块所依赖的包的版本。