Firebase不使用最后的bundle.js-React

时间:2018-08-24 00:08:47

标签: reactjs firebase webpack bundle firebase-hosting

我有一个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"
      }
    ]
  }
}

1 个答案:

答案 0 :(得分:0)

找到了答案:Firebase密钥应硬编码到firebase.js文件中。 Firebase托管仅支持静态网站,因此您需要确保所有内容都已捆绑在一起,然后再上传。 希望它对以后的人有所帮助!