如何强制应用程序引擎上传node_modules
在我的项目中,我们正在使用与打字稿的nodejs谷歌云应用程序引擎应用程序开发。 我们有自己的构build机制,将ts文件编译为javascript,然后将它们收集到一个完整的可运行包中,以便我们不希望在google云上转发安装依赖关系,而是要将node_modules中的所有节点包上传到谷歌云。
但似乎谷歌云将始终忽略node_modules文件夹,并在部署过程中运行npm安装。 即使我试图从app.yaml中删除'skip_files: – ^ node_modules $',它不起作用,谷歌云总是会自行安装包。
有没有人有这个与node_modules一起部署节点应用程序的想法? 谢谢。
我观察到同样的问题。
我的解决方法是在部署之前将node_modules_hack/
重命名为node_modules_hack/
。 这可以防止AppEngine将其删除。
我将其恢复到安装时的原始名称,使用以下(部分) package.json
文件:
"__comments": [ "TODO: Remove node_modules_hack once AppEngine stops stripping node_modules/" ], "scripts": { "install": "mv -fn node_modules_hack node_modules", "start": "node server.js" },
你可以通过查看它生成的Docker镜像来确认AppEngine node_modules/
了你的node_modules/
。 你可以在图像页面find它。 他们给你一个命令行,你可以在云控制台上运行来获取它。 然后你可以运行docker run <image_name> ls
来查看你的目录结构。 该映像是在npm install
之后创build的,因此,一旦使用了上述解决方法,就会看到您的node_modules/
存在。
- GCloud VM错误:来自HTTP-over-RPC代理的错误:无响应
- 通过GAE托pipe的node.js express服务器上传大文件
- 谷歌数据存储查询抛出多个selectApiError:Precondition节点失败的错误
- 使用Node.js和Google Cloud数据存储开始使用教程时出现令牌错误
- 在运行nodeJS的GAE上设置Stackdriver
- 如何通过nodeJS从Google Datastore的索引中排除数组字段?
- ENOENT从App Engine连接到Google Cloud SQL时
- 带有OR条件的Google数据存储filter
- Google应用引擎nodejs本地开发