Webpack: Как связать определенный файл, чтобы получить к нему доступ только в среде QA? - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь создать файл для доступа только локально, и когда код находится в QA env.

Файл создается, когда я запускаю npm test благодаря этому плагину https://www.npmjs.com/package/jest-html-reporter

Это мой jest.config.js:

module.exports = {
  preset: 'ts-jest',
  testEnvironment: 'jsdom',
  modulePaths: ['<rootDir>'],
  reporters: [
    'default',
    [
      './node_modules/jest-html-reporter',
      {
        pageTitle: 'Test Report'
      }
    ]
  ]
};

А мой сценарий test довольно прост: "test": "npm run env && npm run lint && jest --coverage",

Тогда файл test-report.html легко доступен через localhost:5000/test-report.html

но я не уверен, идет ли дело в производство?как я могу установить его только для просмотра в среде QA?

Webpack config:

const { DefinePlugin } = require('webpack');
const path = require('path');
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer')
  .BundleAnalyzerPlugin;
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');

module.exports = {
  mode: 'development',
  entry: './src/index.tsx',
  resolve: {
    extensions: ['.ts', '.tsx', '.js'],
    symlinks: false
  },
  output: {
    path: path.join(__dirname, '/dist'),
    filename: 'bundle.min.js',
    publicPath: '/'
  },
  optimization: {
    splitChunks: {
      chunks: 'all',
      minSize: 100,
      maxSize: 500
    }
  },
  module: {
    rules: [
      {
        test: /\.(png|jpg|gif|svg|css|eot|ttf)$/,
        loader: 'file-loader'
      },
      {
        test: /\.tsx?$/,
        loader: 'awesome-typescript-loader'
      },
      {
        test: /\.scss$/,
        use: [
          'style-loader',
          MiniCssExtractPlugin.loader,
          'css-loader',
          'sass-loader'
        ]
      },
      {
        test: /\.svg$/,
        use: ['@svgr/webpack']
      }
    ]
  },
  node: {
    fs: 'empty',
    child_process: 'empty',
    net: 'empty',
    tls: 'empty'
  },
  plugins: [    
    new MiniCssExtractPlugin({
      filename: 'style.css'
    }),
    new HtmlWebpackPlugin({
      template: process.cwd() + '/src/index.html'
    }),
    new DefinePlugin({
      process.env: {
        NODE_ENV: JSON.stringify('development')
      }
    }),
    new BundleAnalyzerPlugin({
      openAnalyzer: false,
      analyzerMode: 'static',
      reportFilename: './bundle-report.html'
    }),    
  ],
  devServer: {
    historyApiFallback: true,
    compress: true,
    allowedHosts: ['.umusic.net'],
    port: 5000
  }
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...