使用源映射将应用程序部署到Heroku

时间:2018-05-15 00:17:38

标签: reactjs heroku webpack source-maps paas

一切都在当地完美无缺。我在webpack配置中启用了源映射,并创建了.map文件。 问题是当我将应用程序推送到Heroku时。如果我检查元素,我会看到源图没有启用。我最小化了我的代码,所以没有任何东西应该是没有源映射的地方 如何使用源映射部署到Heroku?

修改

webpack config

devtool: 'source-map',
module: {
    rules: [
      {
        test: /\.(js|jsx)$/,
        loader: 'babel-loader',
        exclude: /node_modules|dist|build/,
        options: {
          babelrc: true,
        },
      },
      {
        test: /\.local\.(css|scss)$/,
        use: ExtractLocal.extract({
          fallback: 'style-loader?sourceMap',
          use: [
            {
              loader: 'css-loader',
              options: {
                sourceMap: true,
                minimize: true,
                modules: true,
                importLoaders: 1,
                localIdentName: '[local]___[name]__[hash:base64:5]',
              },
            },
            {
              loader: 'postcss-loader',
              options: {
                sourceMap: true,
              },
            },
            {
              loader: 'sass-loader',
              options: {
                sourceMap: true,
              },
            },
            {
              loader: 'sass-resources-loader',
              options: {
                resources: [ path.resolve(__dirname, './src/client/styling/styles/variables.scss'), ],
              },
            },
          ],
        }),
      },
     ],
  },
   plugins: [
    // new BundleAnalyzerPlugin(),
    new webpack.optimize.UglifyJsPlugin({
      sourceMap: true,
    }),
    new webpack.DefinePlugin({
      'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV),
    }),
   ]

的package.json

"build-client": "cross-env NODE_ENV=production webpack --config webpack.config.prod.js",
"start": "cross-env NODE_ENV=production node ./src/build/bundle.js",

如果我在heroku上刷新我的应用并运行heroku日志,我会收到有关源地图的以下错误。 H12请求超时。所以Sourcemaps就在那里但Heroku没有提取。

enter image description here

好的,我发现了问题。它是 Nginx 而不是Heroku。我在我的Heroku应用程序和服务器之间使用它。配置设置如下。

location ~* \.(js|css|gif|png|jpg|ico|svg|eot|ttf|otf|woff|woff2|json|xml)$ {
            root                 "/app/src/dist/";
            add_header         Pragma public;
            add_header         Cache-Control public;
      expires            1y;
      gzip_static        on;
      gzip               off;
      log_not_found      off;
      access_log         off;
 }

正如您所看到的那样,没有地图扩展程序,因此无法获取它。在我添加之后,一切都开始正常工作了。

0 个答案:

没有答案