Fra*_*eng 6 google-app-engine node.js
在我的项目中,我们使用带有打字稿的nodejs进行谷歌云应用程序引擎应用程序开发.我们有自己的构建机制来将ts文件编译成javascript,然后将它们收集到一个完整的可运行包中,这样我们就不想在google cloud上中继安装依赖项,而是我们想要将node_modules中的所有节点包上传到谷歌云.
但似乎google cloud将始终忽略node_modules文件夹并在部署期间运行npm install.即使我试图从app.yaml删除'skip_files: - ^ node_modules $',它也不起作用,谷歌云将始终自行安装包.
有没有人对node_modules的部署节点应用程序有这个想法?谢谢.
我观察到同样的问题。
我的解决方法是在部署之前重命名node_modules/为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"
},
Run Code Online (Sandbox Code Playgroud)
您可以node_modules/通过查看它生成的 Docker 镜像来确认 AppEngine 是否删除了您的镜像。您可以在图像页面上找到它。他们为您提供了一个命令行,您可以在云控制台上运行该命令行来获取它。然后您可以运行docker run <image_name> ls以查看您的目录结构。该图像是在 之后创建的npm install,因此一旦您使用了上面的解决方法,您就会在node_modules/那里看到您的。
| 归档时间: |
|
| 查看次数: |
1403 次 |
| 最近记录: |