我有一个React课程的样板代码,该课程使用Heroku托管和yarn进行开发。 我切换到Firebase,可以启动并运行我的Web应用程序,但是当我部署(firebase部署)并在本地运行(firebase服务)时,它使用的是旧版本。我猜这与不选择最新的bundle.js(和webpack配置)有关。 但是尝试使用build它将无法正常工作。关于我应该尝试什么的任何想法?
这是我的package.json:
"scripts": {
"build:dev": "webpack",
"build:prod": "webpack -p --env production",
"dev-server": "webpack-dev-server --watch",
"test": "cross-env NODE_ENV=test jest --config=jest.config.json",
"start": "node server/server.js",
"heroku-postbuild": "yarn run build:prod"
},
这是我的webpack配置:
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
if (process.env.NODE_ENV === 'test') {
require('dotenv').config({ path: '.env.test' });
} else if (process.env.NODE_ENV === 'development') {
require('dotenv').config({ path: '.env.development' });
}
module.exports = (env) => {
const isProduction = env === 'production';
const CSSExtract = new ExtractTextPlugin('styles.css');
return {
entry: ['babel-polyfill', './src/app.js'],
output: {
path: __dirname+ '/public',
publicPath: '/public/',
filename: 'bundle.js'
},
...
...并继续介绍模块和插件。让我知道是否还有其他可以补充的内容。
谢谢!
编辑:添加firebase.json默认配置
{
"hosting": {
"public": "public",
"ignore": [
"firebase.json",
"**/.*",
"**/node_modules/**"
],
"rewrites": [
{
"source": "**",
"destination": "public/dist/bundle.js"
}
]
}
}
答案 0 :(得分:0)
找到了答案:Firebase密钥应硬编码到firebase.js文件中。 Firebase托管仅支持静态网站,因此您需要确保所有内容都已捆绑在一起,然后再上传。 希望它对以后的人有所帮助!