我已经开发了我的第一个 Node.js pp。目前,它只是放在我的笔记本电脑上。
在开发过程中我必须安装一些模块:
npm install socket.io
npm install [email protected] /cdn-cgi/l/email-protection
npm install iniparser
npm install js-yaml
npm install nodemailer
我已经“每个项目”安装了所有这些,而不是全局安装。
我的项目目录如下所示(我的代码全部在push_server.js中):
|
|--- push_server.js
|
|--- node_modules
|--- iniparser
|--- js-yaml
|--- mysql
|--- socket.io
|--- nodemailer
现在我想将这个项目推送到生产服务器。
我的问题是:我可以上传整个代码库(包括已安装的模块)还是应该只上传我的应用程序的代码并在服务器上一一重新安装模块?
注意:我的开发机器运行 Ubuntu 10.04,生产服务器运行 CentOS 5.3
我认为所有这些模块都仅由 js 文件组成,因此应该没问题。
但是,npm 安装的模块是否有可能在本地计算机上编译某些代码,因此该代码可能无法在另一台计算机上运行。另外,我如何知道模块是否这样做?
希望这个问题不太愚蠢——我刚刚开始使用 Node.js。
Thanks.
你绝对应该复制node_modules
如果可能的话。
如果您在服务器上重新下载它们,则可能会面临获得正在使用的模块版本略有不同的风险。即使您需要严格的模块版本 X,该模块也可以再次对其他模块 Y Z 具有通配符依赖性。这意味着,如果更新 Y 并将其发布到服务器,那么它现在将使用与您使用的代码不同的 Y 代码来运行用于您的本地测试和验证。
在某些情况下,您甚至可能在部署时没有可用的所需模块,因为作者已决定出于某种原因取消发布该包。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)