【发布时间】:2014-10-23 06:07:55
【问题描述】:
我想部署一个经常更新的 nodejs 项目。站点上没有 npm,所以我必须打包 node_modules。这工作正常,但需要很长时间才能通过可用的 ftp 连接发送给客户(每次 80MB 主要是 node_module 文件)。我的工作流程如下所示:
git clone project
npm install # installs all my dev tools which I need for packaging
grunt build
tar xvzf build.tar.gz build/
构建步骤将我的代码打包缩小到只需要的部分。 node_modules 文件夹被复制到构建文件夹中。如果我使用npm install --production,我会占用更小的空间,但会错过构建它所需的工具。所以最后我努力使我的代码占用空间小,但我所有的工作都因为不得不打包这么大的 node_modules 树而被撤销。
我的方法错了吗?有没有更简单的方法可以在生产服务器上没有 npm 的地方进行部署,或者有没有减小 node_modules 文件夹大小的好方法?
【问题讨论】:
-
为什么不使用差异部署流程?当您部署到客户端时,只会改变一些事情。 node_modules 目录中的文件通常不会经常更改。但是当您只有 FTP 访问权限时可能会出现问题,在这种情况下,您需要自己准备差异发布。试试看grunt-newer。
-
谢谢。我正在使用差分方法,但想简化它。感谢您指出 grunt-newer。我会看看这个,看看我是否可以用它来打包新的模块。
-
除了@raidendev,您还可以通过选择更好的压缩算法来节省带宽并加快部署速度。喜欢LZMA。
标签: javascript node.js gruntjs npm