![elastic beanstalk 是否从 package.json 文件运行 postinstall?](https://linux22.com/image/656632/elastic%20beanstalk%20%E6%98%AF%E5%90%A6%E4%BB%8E%20package.json%20%E6%96%87%E4%BB%B6%E8%BF%90%E8%A1%8C%20postinstall%EF%BC%9F.png)
我正在使用 elastic beanstalk 部署 node.js 应用程序。在我的scripts
部分中package.json
,我有:
"scripts": {
"start": "node_modules/.bin/coffee server.coffee",
"test": "NODE_ENV=test node test/runner.js",
"coverage": "NODE_ENV=test COVERAGE=1 node test/runner.js -R html-cov test/ > ./test/coverage.html",
"testw": "fswatch -o test src | xargs -n1 -I{} sh -c 'coffeelint src server.coffee ; npm test'",
"db:drop": "node scripts/drop-tables.js",
"encryptConfig": "node_modules/.bin/coffee config/encrypt.coffee",
"decryptConfig": "node_modules/.bin/coffee config/decrypt.coffee",
"postinstall": "npm run decryptConfig"
},
似乎npm install
有效。但是postinstall
不执行。这是一个已知问题吗?如果是,我如何在之后npm install
但之前执行某些操作npm start
?
答案1
我也刚遇到过这个问题。我发现一个postinstall
脚本无法运行,但一个prestart
可以运行。我的脚本如下所示:
"scripts": {
"start": "node index.js",
"prestart": "node node_modules/webpack/bin/webpack.js"
}
现在,当我在本地运行时启动服务器之前,它可以正确捆绑我的 webpack 内容eb deploy
。
答案2
我认为您的意思是您正在使用 EB (Elastic Beanstalk) ELB 作为负载均衡器。npm start
默认情况下,Elastic Beanstalk 正在运行以运行您的应用程序。我建议您在构建过程中将模块与应用程序一起打包。