GAE
标准环境。
我的想法和工作流程如下:
GAE公司
服务到GCP=>从
.ts
到
.js
这是我的
package.json
{
"name": "webpack-compile-after-deploy",
"version": "1.0.0",
"description": "",
"main": "./dist/main.js",
"scripts": {
"start": "node ./dist/main.js",
"prestart": "npm run build",
"build": "webpack",
"deploy:dev": "gcloud app deploy ./app.dev.yaml",
"deploy:prod": "gcloud app deploy ./app.prod.yaml"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@types/express": "^4.16.0",
"awesome-typescript-loader": "^5.2.1",
"express": "^4.16.4",
"typescript": "^3.1.6",
"webpack": "^4.25.1",
"webpack-cli": "^3.1.2",
"webpack-node-externals": "^1.7.2"
}
}
我把所有的节点模块
dependencies
cloud build
使用
npm install --production
命令安装依赖项。
在我部署我的
GAE公司
服务于
GCP
尝试访问我的应用程序。
这个
stackdriver logs
Error: Cannot find module '/srv/dist/main.js'
at Function.Module._resolveFilename (module.js:548:15)
at Function.Module._load (module.js:475:25)
at Function.Module.runMain (module.js:694:10)
at startup (bootstrap_node.js:204:16)
at bootstrap_node.js:625:3
所以我想
npm run build
可能失败了。
webpack
在
部署阶段?
如果答案是肯定的。如何解决此错误?谢谢。
我可以通过以下工作流成功部署和运行我的应用程序:
从生成源代码
到
.js公司
,生成
./dist
目录=>运行
gcloud app deploy
将上载
/距离
GAE公司
容器=>运行
npm start
因此,这两个工作流之间的唯一区别是何时构建源代码。
在本地生成源代码,或在云生成阶段生成源代码(在启动应用程序之前)