# react-sh

## install

```bash
npm install react-sh --save-dev
#or
yarn add react-sh -D
```

## use

1. add start and build script to your package.json, like:

```json
...
{
  "start": "react-sh",
  "build": "react-sh --build --compress --production",
}
...
```

2. add react-dev.json to your project root path, please see format from `react-dev.json` in this project.

```json5
{
  // 编译目标，可以0个或多个
  "targets": [
    {
      // 如果为TRUE，则这个target不起作用
      "disable": false,
      "origin": false,

      // 输出的package的名字
      "key": "smile-web",
      
      // 已废弃
      "template": "src/index.html",
      
      // 入口文件的相对路径
      "filename": "src/index.js",
      
      // 输出目录的相对路径
      "distPath": "./dist",
      
      // 同webpack publicPath
      "publicPath": "//unpkg.com/smile-web@0.0.9/dist/",
      // 开发模式下的publicPath
      "devPublicPath": "http://127.0.0.1:8083/dist/",
      
      // 同webpack alias
      "alias": {
        "react": "react/dist/react.js",
        "react-dom": "react-dom/dist/react-dom.js"
      },
      /**
       * 同webpack externals 不需要webpack打包的package，一般是比较大的比如react之类的package，比如这里。
       * 也可以什么包都不加（推荐），直接去掉即可。
       */
      "externals": {
        "react": {
          "root": "React",
          "amd": "react",
          "commonjs": "react"
        },
      },
      // 是否打包为一个library
      "isLibrary": true
    }
  ],
  
  // 全局 是否使用.babelrc文件
  "useBabelrc": true,
  
  // 全局 开发模式下的public path(webroot)
  "devPublicPath": "./",
  
  // 全局 需要用babel编译的在node_modules目录里面的package
  "modulesNeedBabel": [
    "react-lang"
  ]
}
```

## peer dependencies

* react
* react-dom
* react-router
* react-router-redux
* redux
* redux-actions
