Webpack:未在Webpack中使用process.env.NODE_ENV获得测试环境

时间:2018-09-29 01:39:13

标签: webpack webpack-dev-server

我正在生产或开发中都正在获取process.env.NODE_ENV,同时我也需要测试环境变量。

在我的package.json中:

        "scripts": {
        "dev": "node build/dev-server.js",
        "start": "node build/dev-server.js",
        "build": "node build/build.js"
      },

在我的dev-server.js中

    const config = require('../config');
    if (!process.env.NODE_ENV) {
      process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)
    }
    const opn = require('opn')
    const path = require('path')
    const express = require('express')
    const webpack = require('webpack')
    const proxyMiddleware = require('http-proxy-middleware')
    const webpackConfig = process.env.NODE_ENV === 'testing'
      ? require('./webpack.prod.conf')
      : require('./webpack.dev.conf')

    // default port where dev server listens for incoming traffic
    const port = process.env.PORT || process.env.NODE_ENV === 'testing' ? config.test.port : config.dev.port;
    enter code here

在dev.env.js中:

    const merge = require('webpack-merge')
    const prodEnv = require('./prod.env')

    module.exports = merge(prodEnv, {
      NODE_ENV: '"development"'
    })

在test.env.js中:

    const merge = require('webpack-merge')
    const devEnv = require('./dev.env')

    module.exports = merge(devEnv, {
      NODE_ENV: '"testing"'
    })

在prod.env.js中:

    module.exports = {
      NODE_ENV: '"production"'
    }

在Index.js中:

   build: {
            env: require('./prod.env'),
    }
    dev: {
        env: require('./dev.env'),
        port: 7999
    }

    test: {
        env: require('./dev.env'),
        port: 7888
    }

enter image description here

我也想获得测试环境,因为它指向开发或生产环境。在我的情况下,我需要根据特定的环境指向Lib文件,我无法将lib文件指向QA,就好像我使用'process.env.NODE_ENV'一样,它将返回开发或生产环境。

如何添加单独的配置文件进行测试?在那儿 实现此目的的另一种方法?

0 个答案:

没有答案