# node配置

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

* 设置node 的环境来区分：在执行node的脚本的命令里设置变量NODE\_ENV的值，然后用 && 连接下一个命令。具体写法如下：

```javascript
//package.json

{
  "name": "webpack4.x",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "build":"set NODE_ENV=production && webpack ",//注意：这是关键
    "start":"webpack --env=production"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.6.0",
    "webpack-cli": "^2.0.15"
  }
}
// 用&& 连接webpacj 命令。在window里设置NODE_ENV 要用set命令
```

**因为不同的平台对node的环境变量NODE\_ENV的设置不一样，例如 && 以前使用分号; ,但是window系统不行，就变成windows 和\*unix 都兼容的写法 && 。不过有的window版本任然不可以。后来就出来了一个小的npm包:cross-env 可以跨平台设置node 的环境变量。**

```javascript
cnpm install -D cross-env ;
```

**以上面的代码package.json为例，然后这样设置build，就是在NODE\_ENV=production 前面加上 cross-env ,而且不需要使用 &&**

```javascript
"build":"cross-env NODE_ENV=production  webpack "
```
