IT이야기

웹 팩 정의플러그인이 node_env 변수를 설정/읽지 않음

cyworld 2022. 3. 28. 21:15
반응형

웹 팩 정의플러그인이 node_env 변수를 설정/읽지 않음

웹팩의 '플러그인'을 통해 node_envvvar를 내 코드에 주입하는 것이 정말 문제인데, 수많은 게시물을 읽고 나니 아무 소용이 없어 보인다.뭔가 놓치고 있는 것 같은 느낌이 들어...

그래서 내 프로덕션 웹 팩 구성은 -

// Config
import path from 'path';
import webpack from 'webpack';
import config from './config';


/**
 * Webpack config for compiling the
 * React/Redux/ES6 scripts.
 *
 * ENV = production
 *
 * @type {Object}
 */
module.exports = {
    entry: path.resolve(__dirname, '../', config.assets.scripts.src_dir, config.assets.scripts.entry),
    devtool: false,
    output: {
        path: path.resolve(__dirname, config.assets.scripts.dist_dir),
        filename: config.assets.scripts.dist_min
    },
    module: {
        loaders: [
            {
                test: /.js?$/,
                loader: 'babel-loader?presets[]=react,presets[]=es2015,presets[]=stage-0',
                exclude: /node_modules/
            },
            {
                test: /\.json$/,
                loader: 'json-loader'
            }
        ]
    },
    plugins: [
        new webpack.DefinePlugin({
            'process.env': {
                'NODE_ENV': JSON.stringify('production')
            }
        }),
        new webpack.optimize.UglifyJsPlugin({})
    ]
};

react, react-dom 및 react-remedx에 대한 별칭을 설정해 보았지만 전혀 소용이 없었다. reaction은 node_env=production 외부에서 축소 버전을 사용하고 있다는 경고를 여전히 내게 준다(Andex는 여전히 이 오류를 발생시킨다).

FYI, 웹팩 버전 2.2.1을 사용하고 있어.

바벨 로더가 어떤 식으로든 충돌하는 것과 관련이 있을까?만약 누군가가 나에게 올바른 방향을 가리킬 수 있다면 그것은 좋을 것이다.

변경해 보십시오.DefinePlugin을 위해NODE_ENV이 점에 대해서 -

plugins: [
    new webpack.DefinePlugin({
        'process.env.NODE_ENV' : JSON.stringify('production')
    }),
    new webpack.optimize.UglifyJsPlugin({
        minimize : true,
        compress : {
            warnings : false
        }
    })
]

참조URL: https://stackoverflow.com/questions/43083662/webpack-defineplugin-not-setting-reading-node-env-variable

반응형