React-Dev

React本地开发环境​
授权协议 未知
开发语言 JavaScript
所属分类 手机/移动开发、 React 开源项目
软件类型 开源软件
地区 国产
投 递 者 幸越泽
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

React-Dev基于webpack(打包)&gulp(工作流)&koa(数据mock)的本地开发环境

执行命令:

  • npm run start
    启用带有hmr功能的本地服务开发环境

  • npm run debug
    启用不带hrm功能的本地服务开发环境

  • npm run mock
    启用带有数据mock功能的本地服务开发环境(不带hmr,因该功能还不稳定Webpack用来做模块热替换

  • npm run build
    执行项目构建,构建至.build文件夹,用于线上发布

  • npm run test
    执行单元测试

数据mock配置说明

  • 目前数据mock功能只能支持mock一个接口(设定为/api/list,所以所有的mock请求都请求这一个接口),在配置中,需要将不同的请求区分配置放在req参数中,然后在配置对象中指定req对应值返回的数据即可。

  • 配置完数据后要想使得mock的数据生效,需要关闭当前本地服务,执行npm run mock重新启动服务,mock数据方可生效。

技术方案

  • reflux + react

  • webpack + gulp + koa(用于mock数据)

  • npm

目录结构

    ├── .build                            [项目发布后生成的目录或文件]
    └─── sc-radar                         [前端开发代码目录]  
        ├── app.js                        [业务js目录]       
        ├── app.css                       [业务css目录]
        └── index.html                    [入口文件]
    ├── app                               [前端开发静态资源]
    ├── gulp                              [gulp任务目录]
    ├── mock                              [ajax请求数据mock配置]
    ├── node_modules                      [依赖]
    ├── test                              [测试]
    ├── .editorconfig                     [代码格式化小工具配置]
    ├── .eslintrc                         [eslint代码检查配置文件]
    ├── .gitignore                        [配置git操作会忽略的文件]
    ├── buildConfig.js                    [构建配置文件]
    ├── gulpfile.js                       [gulp任务执行入口文件]
    ├── HISTORY.md                        [修改记录]
    ├── index.html                        [spa入口]
    ├── make-webpack.config.js            [webpack-config统一配置文件]
    ├── package.json                      [前端项目依赖配置]
    ├── READMD.md                         [你在看的文件]
    ├── routes.js                         [koa proxy路由]
    ├── server-with-mock.js               [koa利用中间件起本地服务]
    ├── webpack-dev-mock.config.js        [带mock功能的本地服务配置]
    ├── webpack-dev-server.config.js      [不带hmr功能的本地服务配置]
    ├── webpack-hot-dev-server.config.js  [带hmr功能的本地服务配置]
    └── webpack-production.config.js      [构建用于部署的静态资源文件配置]

依赖说明

lodash  "react-router": "1.0.0-beta3"  不稳定版本,后续要关注下更新

webpack记录

  • output 里的 publicPath: '/build/' 注释掉,此配置会导致生成build中的css引用的字体路径为/build/xxxx (publicPath:'/')

BUG LIST

console 报错 Invariant Violation: addComponentAsRefTo(...): Only a ReactOwner can have refs. This usually means that you're trying to add a ref to a component that doesn't have an owner (that is, was not created inside of another component's render method). Try rendering this component inside of a new top-level component which will hold the ref.

解决方法:同时使用了两个版本的react,删除本地的react即可

react-highcharts 用webpack打包,使用babel打包后报错

解决方法:react-highcharts自身已经用webpack打包,二次打包时添加 'use strict'; 手动删除 'use strict'; 报错消失,通过配置webpack config 的loader,修改{test: /.(js)$/,loader: 'babel-loader?loose=all'}, 为 {test: /.(js)$/,exclude: /node_modules/,loader: 'babel-loader?loose=all'}, 可以解决此问题。

重构代码组织目录,点击菜单报错

type.toUpperCase() is not a function 由于重构 sideItem ,sideNav 导致了循环引用。webpack并未报错,只是返回了 {} 。导致 React无法识别。

模型:    Stroe : state [a:'',b:''] ,            onGetA: Ajax , trigger({a:a})            onGetB: Ajax , trigger({b:b})    componentsDidMount : Action.getA , Action.getB

问题:组件中的显示情况,当ajax获取到数据a后,组件中的a数据更新,当ajax获取到数据b后,组件中的b数据更新了,但是之前a数据更新的结果消失了。调试:render中用console.log查看组件的state,一共有三条记录:    this.state a:'',b:'' 第一次渲染    this.state a;'value' ajax获取到了a的数据,但是state中没有b    this.state b:'value' ajax获取到了b的数据,但是state中没有a解决方法:    将store中的trigger({a:a}),trigger({b:b})都修改为trigger({a:a,b:b})

jsPlumb 打包

imports-loader exports-loader

webpack.config.js :

module.noParse : /min\.js|jsPlumb.*\.js/  ### 不解析依赖

usage method 1:

var jsPlumb = require('imports-loader?this=>window!exports-loader?jsPlumb!./dom.jsPlumb-1.7.7-min.js');

usage method 2:

require('jsPlumb') ;
// webpack.config.js 
loaders: {test: /\.jsPlumb.*\.js$/, loader: 'imports-loader?this=>window!exports-loader?jsPlumb'}
// or  resolve.alias
 相关资料
  • 问题内容: Kubernetes似乎只不过是将容器部署到集群云中。似乎没有碰到的是开发和暂存环境(或类似环境)。 在开发过程中,您希望通过一些重要更改尽可能接近生产环境: 本地部署(或至少在 您只有您可以访问的地方 ) 在页面刷新时使用 最新的源代码 (假设它是一个网站;理想情况下,在本地文件保存上页面自动刷新,如果您挂载源代码并使用诸如Yeoman之类的东西就可以完成)。 同样,人们可能希望非公

  • Webpack 是一个前端资源加载/打包工具,只需要相对简单的配置就可以提供前端工程化需要的各种功能,并且如果有需要它还可以被整合到其他比如 Grunt / Gulp 的工作流。 安装 Webpack:npm install -g webpack Webpack 使用一个名为 webpack.config.js 的配置文件,要编译 JSX,先安装对应的 loader: npm install ba

  • 本文向大家介绍PHP+Oracle本地开发环境搭建方法详解,包括了PHP+Oracle本地开发环境搭建方法详解的使用技巧和注意事项,需要的朋友参考一下 安装instant client 首先,是从https://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html下载相应的数据库版本对应的basic和devel的rpm包或zip

  • Egg.js应用开发-本地开发 平台流程 本地开发 Egg.js应用开发-本地开发 更新时间:2018-08-09 18:40:14 本章讲解:Egg.js 应用如何开发, 待补充.. 平台流程 进入应用开发界面,可以在页面上看到应用的 AppKey、AppSecret 以及代码仓库信息。 本地开发 克隆代码 git clone git@code.aliyun.com:iot-a124labfag

  • Web 插件开发-本地开发 安装开发环境 本地开发 开发资源 Web 插件开发-本地开发 更新时间:2018-07-04 18:46:18 本章介绍插件的本地开发步骤。 安装开发环境 请参照 Bone Web 文档安装开发环境:https://bone.aliyun.com/bone-web/bonewebsdk.html?name=zm1rpl 本地开发 创建项目: bone init 1.选

  • 一、使用 devServer 为什么要使用 devServer? 答:因为在开发调试的过程中不用频繁的去执行型打包命令,等待打包完成才能进行调试。devServer 会自动在内存内打包,并自动打开或刷新浏览器。 1.1、核心配置 /* webpack.config.js webpack的配置文件 作用:指示webpack干哪些活(当你运行webpack指令时,会加载里面的配置)所有

  • 我有一个烧瓶应用程序,我在本地运行和测试。每次我对应用程序代码进行更改,这些更改都会反映在开发环境中http://127.0.0.1:8000/只需简单的浏览器刷新。 现在,我必须终止Flask应用程序,然后重新启动该应用程序。我正在使用gunicorn启动Flask应用程序。 不确定更改了什么,但如何配置应用程序,使更改在刷新时生效? 我在init中有下面一行代码。py:

  • 注意:本文停止更新,请直接转到kubernetes-vagrant-centos-cluster仓库浏览最新版本。 当我们需要在本地开发时,更希望能够有一个开箱即用又可以方便定制的分布式开发环境,这样才能对Kubernetes本身和应用进行更好的测试。现在我们使用Vagrant和VirtualBox来创建一个这样的环境。 部署时需要使用的配置文件和vagrantfile请见:https://git