> For the complete documentation index, see [llms.txt](https://sekin.gitbook.io/myjs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://sekin.gitbook.io/myjs/webpack/huan-jing-bian-liang-de-shi-yong.md).

# 环境变量的使用

在打包的时候，开发环境压缩代码时会和webpack-dev-server开启的服务冲突，发生编译错误。本地的开发环境也没必要压缩代码。现在我没有把开发环境和生产环境的配置文件分离出来，使用的都是一个js配置文件。我配置的比较简单，两个环境就是压不压缩代码的区别。不过每次在两个环境中开启关闭压缩代码，都是手动改，太浪费webpack这个神奇的打包工具了。

环境变量的设置有两种

* 设置node进程里的环境变量 NODE*ENV=XXXXX  ，再用 process.env.NODE*\_ENV获取。
* 通过webpack的环境变量配置，---env=xxxx,获取的方法有点不一样，环境变量时通过参数传过来的，所以配置文件导出的不是一个对象了，导出是一个函数，环境变量传到这个函数的参数，函数返回一个对象。webpack配置方法还是跟以前一样。

```javascript
const path = require("path");

const PATHS = {
    app:path.join(__dirname,"src"),
    build:path.join(__dirname,"dist")
};

module.exports=function(env){
          return {
        entry: {
            main: PATHS.app,
        },
        mode: env,
        output: {
            path: PATHS.build,
            filename: '[name].boundle.js'
        }
    };
}
```
