text: !function(n){function t(t){for(var r,u,l=t[0],p=t[1],s=t[2],a=0,d=[];a<l.length;a++)u=l[a],Object.prototype.hasOwnProperty.call(o,u)&&o[u]&&d.push(o[u][0]),o[u]=0;for(r in p)Object.prototype.hasOwnProperty.call(p,r)&&(n[r]=p[r]);for(c&&c(t);d.length;)d.shift()();return i.push.apply(i,s||[]),e()}function e(){for(var n,t=0;t<i.length;t++){for(var e=i[t],r=!0,l=1;l<e.length;l++){var p=e[l];0!==o[p]&&(r=!1)}r&&(i.splice(t--,1),n=u(u.s=e[0]))}return n}var r={},o={107:0},i=[];function u(t){if(r[t])return r[t].exports;var e=r[t]={i:t,l:!1,exports:{}};return n[t].call(e.exports,e,e.exports,u),e.l=!0,e.exports}u.m=n,u.c=r,u.d=function(n,t,e){u.o(n,t)||Object.defineProperty(n,t,{enumerable:!0,get:e})},u.r=function(n){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(n,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(n,"__esModule",{value:!0})},u.t=function(n,t){if(1&t&&(n=u(n)),8&t)return n;if(4&t&&"object"==typeof n&&n&&n.__esModule)return n;var e=Object.create(null);if(u.r(e),Object.defineProperty(e,"default",{enumerable:!0,value:n}),2&t&&"string"!=typeof n)for(var r in n)u.d(e,r,function(t){return n[t]}.bind(null,r));return e},u.n=function(n){var t=n&&n.__esModule?function(){return n.default}:function(){return n};return u.d(t,"a",t),t},u.o=function(n,t){return Object.prototype.hasOwnProperty.call(n,t)},u.p="/";var l=window.webpackJsonp=window.webpackJsonp||[],p=l.push.bind(l);l.push=t,l=l.slice();for(var s=0;s<l.length;s++)t(l[s]);var c=p;i.push([676,0]),e()}({1:function(n,t){n.exports=Vue},312:function(n,t,e){"use strict";var r=function(){var n=this.$createElement,t=this._self._c||n;return t("doc-guide",{attrs:{page:this.page,hasPadding:!0}},[t("script",{attrs:{type:"text/markdown"}},[this._v('\n# 开发环境\n\n在开始编写MorningUI的代码前，首先需要安装开发环境。\n\n为了帮助开发者快速开始，我们在项目工程化上倡导开箱即用。\n\n## 推荐MAC OS\n\n我们强烈推荐开发者使用MAC OS来进行开发，以下文档内容仅针对MAC OS。\n\n如果你是一名Windows开发者，非常抱歉，我们目前暂时没有维护Windows下的开发环境。你可以先按照下面流程进行，如果出现问题请联系我们。\n\n## 获取源码\n\nMorningUI的源码托管在github上：\n\n```shell\n$ git clone https://github.com/Morning-UI/morning-ui.git\n```\n\n## 本地安装\n\n由于MorningUI依赖一些npm包，源码获取后需要安装(请保证Node.js版本8.5.0+)：\n\n```shell\n$ cd morning\n$ export ELECTRON_MIRROR="https://npm.taobao.org/mirrors/electron/"\n$ npm install --registry=https://registry.npm.taobao.org\n```\n\n上面的脚本将部分源切换成了国内，这将有助于你快速安装依赖。\n\n## 检测安装\n\n运行测试来校验安装是否完成：\n\n```shell\n$ npm run test\n```\n\n如果所有测试通过，恭喜你完成了MorningUI的开发环境安装。\n\n## 开始开发\n\n首先执行`npm run dev`，这可能需要一点时间。当`http://localhost:8080/`可以访问时，恭喜你开发环境运行起来了。\n\n然后修改一些代码，当你保存时，webpack会自动重新构建代码，并刷新浏览器。\n\n## 更多\n\n到目前为止你已经成功安装并运行了MorningUI开发环境。下面还有一些进阶的内容，可以帮助你更好的开发MorningUI。\n\n#### 项目结构\n\n```\nmorning\n├─ .babelrc                         // babel配置文件\n├─ .eslintignore                    // eslint检测忽略文件\n├─ .eslintrc.yml                    // eslint配置\n├─ .gitattributes                   // Git属性配置\n├─ .gitignore                       // Git提交忽略文件\n├─ .stylelintrc                     // StyleLint配置\n├─ CHANGELOG.md                     // 更新日志\n├─ LICENSE                          // 许可证\n├─ package-lock.json                // npm包lock文件\n├─ package.json                     // npm配置文件\n├─ README.md                        // 介绍文件\n├─ .circleci/                       // CircleCI配置\n├─ bin/                             // 命令行工具\n├─ build/                           // 构建脚本\n├─ dist/                            // UI库成品文件\n├─ docs/                            // 文档\n├─ report/                          // 测试报告\n├─ server/                          // 文档服务端\n├─ src/                             // 源码\n│   ├─ docs/                        // 文档源码\n│   └─ lib/                         // UI库源码\n│       ├─ common/                  // UI库通用部分\n│       ├─ styles/                  // UI库通用样式\n│       ├─ icon/                    // UI库字体图标\n│       ├─ utils/                   // 工具代码(通过mixin在组件中使用)\n│       ├─ components/              // UI组件源码\n│       └─ index.js                 // UI组件入口\n└─ test/                            // 测试\n    ├─ helper                       // 测试辅助文件\n    ├─ unit                         // 单元测试\n    └─ e2e                          // 端点测试\n```\n\n#### 命令行工具\n\nMorningUI为开发者准备了一套命令来帮助快速开发：\n\n```shell\n$ npm run build                                 # 构建项目(库文件及文档)\n$ npm run dev                                   # 运行开发环境(运行后通过http://localhost:8080/访问)\n$ npm run build-profile                       # 输出webpack构建性能统计文件\n$ npm run lint                                    # 通过ESLint及StyleLint检查代码\n$ npm run js-lint                                # 通过ESLint检查代码\n$ npm run js-lint-fix                           # 通过ESLint自动修复代码中的问题\n$ npm run css-lint                              # 通过StyleLint检查代码\n$ npm run test                                   # 运行所有测试\n$ npm run test-watch                         # 当文件变化时执行测试\n$ npm run test-snapshot                     # 为所有测试进行快照\n$ npm run test-report                         # 生成测试报告\n$ npm run unit                                   # 运行单元测试\n$ npm run ci-unit                               # 运行单元测试(持续集成时使用，限制了进程数)\n$ npm run unit-watch                         # 当文件变化时执行单元测试\n$ npm run unit-snapshot                     # 为单元测试进行快照\n$ npm run e2e                                   # 运行端点测试\n$ npm run ci-e2e                               # 运行端点测试(持续集成时使用，限制了进程数)\n$ npm run e2e-watch                          # 当文件变化时执行端点测试\n$ npm run e2e-snapshot                      # 为端点测试进行快照\n$ npm run cover                                 # 检查测试覆盖\n$ npm run ci-cover                             # 检查测试覆盖(持续集成时使用，限制了进程数)\n$ npm run cover-report                       # 生成测试覆盖报告\n$ npm run codecov-report                   # 生成codecov测试覆盖报告\n$ npm run update-log-report                # 根据Git Log生成组件更新日志\n$ npm run report                                # 生成所有测试报告\n$ npm run commit                              # 提交处理，包含：构建项目、生成测试报告\n$ npm run doc                                   # 启动文档服务，可通过`--port`参数设置服务监听端口\n$ npm run css-analysis                        # 执行CSS分析，分析各个组件占用的CSS大小，此工具可以帮助你优化CSS\n```\n\n')])])},o=[];r._withStripped=!0,e.d(t,"a",(function(){return r})),e.d(t,"b",(function(){return o}))},61:function(n,t,e){"use strict";e.r(t);var r=e(62),o=e.n(r);for(var i in r)"default"!==i&&function(n){e.d(t,n,(function(){return r[n]}))}(i);t.default=o.a},62:function(n,t,e){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=e(3),i=(r=o)&&r.__esModule?r:{default:r};t.default={data:function(){return{page:"devenv"}},components:{"doc-guide":i.default}},n.exports=t.default},676:function(n,t,e){"use strict";var r=i(e(1)),o=i(e(677));function i(n){return n&&n.__esModule?n:{default:n}}new r.default({el:"#root",render:function(n){return n(o.default)}})},677:function(n,t,e){"use strict";e.r(t);var r=e(312),o=e(61);for(var i in o)"default"!==i&&function(n){e.d(t,n,(function(){return o[n]}))}(i);var u=e(0),l=Object(u.a)(o.default,r.a,r.b,!1,null,null,null);l.options.__file="src/docs/pages/guide/devenv/index.vue",t.default=l.exports}});