我试图使用下面的操作将我的项目部署到Firebase Hosting。
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
deploy_to_firebase_hosting:
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@master
- name: Install Dependencies
run: npm install
- name: Build for production
run: npm run build-prod
- name: Deploy to Firebase
uses: w9jds/firebase-action@master
with:
args: deploy --only hosting
env:
FIREBASE_TOKEN: ${{ secrets.FIREBASE_TOKEN }}
该操作在以下情况下失败 为生产而建 步。我的 build-prod
脚本不 webpack -p --mode production
.
这就是这个故障的错误信息。
> [email protected] build-prod /home/runner/work/project-name/project-name
> webpack -p --mode production
/home/runner/work/project-name/project-name/node_modules/webpack-cli/bin/cli.js:93
throw err;
^
TypeError: Cannot convert undefined or null to object
at Function.keys (<anonymous>)
...
我一直在研究这个错误,我发现人们通过删掉 node_modules
前运行构建。于是我又运行了另一个动作,没有使用 npm install
部分。
它再次失败在 为生产而建但却出现了不同的、合理得多的错误。
> webpack -p --mode production
webpack not installed
Install webpack to start bundling:
$ npm install --save-dev webpack
npm ERR! code ELIFECYCLE
npm ERR! errno 1
在Github Actions中构建生产捆绑包的正确方法是什么?
谢谢!我正试图使用以下操作将我的项目部署到Firebase主机上
当我试图使用GitHub动作来构建&部署一个生产的Docker容器时,我遇到了完全相同的问题。
结果发现我这边的问题是由于Webpack在构建时没有访问任何环境变量(我的Webpack配置需要),这导致了和你上面一样的错误。
为了解决这个问题,我在我的构建命令中添加了以下一行。
--env.NODE_ENV=production
例如我的最终构建命令由容器调用,然后是:
node --max_old_space_size=4096 ./node_modules/webpack/bin/webpack.js --env.NODE_ENV=production --progress --config webpack.prod.js
希望能帮到你