新建一个项目

npm install -g create-react-app
create-react-app my-app
cd my-app
npm i
npm start
# 或者,npm 5.1版本以上自带npx,以下官方推荐
npx create-react-app my-app
cd my-app
npm start
复制代码

暴露配置文件

# 暴露配置文件,输入yes就好
npm eject
复制代码

下载依赖

# scss依赖
npm install sass-loader node-sass --save-dev
# 如果node-sass下载不下来的话,即node-sass安装失败使用:npm install --save node-sass --registry=https://registry.npm.taobao.org --disturl=https://npm.taobao.org/dist --sass-binary-site=http://npm.taobao.org/mirrors/node-sass
# 说明
--registry=https://registry.npm.taobao.org 淘宝npm包镜像
--disturl=https://npm.taobao.org/dist 淘宝node源码镜像,一些二进制包编译时用
--sass-binary-site=http://npm.taobao.org/mirrors/node-sass 这个才是node-sass镜像
# ant-design
npm install antd --save
# 按需加载的依赖
npm install babel-plugin-import --save
复制代码

配置webpack参数

scss

在config 里面的webpack.config.dev.js和webpack.config.prod.js里面,前面一个是开发的配置文件,后面的是生产时的配置文件

大约160行左右
# 第一处是:
test: /\.css$/ 变成 test: /\.s?css$/
# 第二处是:
{loader: require.resolve('sass-loader')}
复制代码

之后你随便新建一个a.scss ,import "路径/a.scss"就可以了

缺点就是css代码会是全局的,一个人开发还好,多人的话,css命名冲突就很难受了,css-moudle是一种解决方案,但是我不怎么喜欢,我个人推荐可以用下style-component

css-moudle阮一峰

style-component

ant-design

# 修改babel配置,在package.json里面
# 装饰器的包:npm i babel-plugin-transform-decorators-legacy --D
# 1.按需加载,让nodejs支持最新的语法,装饰器
# package.json里面不能写注释,记得删掉"babel": {"presets": ["react-app",["env",{"targets": {"node": true}}]],// 这边是按需加载ant-design的css"plugins": [["import",{"libraryName": "antd","libraryDirectory": "es","style": "css"}],// 装饰器"transform-decorators-legacy"]},//设置代理,应为前端开启了一个服务器,后端又开启了一个服务器,导致跨域的问题,设置代理能解决这个问题"proxy": "http://localhost:8888",
复制代码

之后就ok了。你引入一个ant的组件试试就知道了

结果

# 导入
import { Button } from 'antd';
import React from 'react'
import "./msgCircle.scss";
class MsgCircle extends React.Component {render() {return (<div className="msg-circle"><Button type="primary">Primary</Button></div>)}
}
export default MsgCircle;
# 有人说为什么不用导入css,应为前面已经配置了按需加载
复制代码

如果我又想用antd的主题怎么办

这里就给一个官方的解决方案

传送门

注意

修改配置文件后要重新npm start一下的

  • 若配置装饰器后,发现 vscode 有红色波浪线,解决方法
# 新建一个tsconfig.json,内容如下
{"compilerOptions": {"experimentalDecorators": true,"allowJs": true}
}
复制代码

链接mongodb,后端node

梦想还是要有的,万一实现了呢

# 在根目录新建一个server
cd server
# init后就会生成一个package.json,记录你每次安装的包
npm init
# 为什么把模块装在server里面,装在外面的package.json不好吗,可以啊,不过我喜欢分开
npm i bluebird express mongoose nodemon --save
mkdir server.js
复制代码

准备启动后端了,链接mongodb

const express = require('express');
const mongoose = require('mongoose')const app = express();app.use('/', function (req, res) {return res.json('hello world')
})
// mongoose的Promise已经废弃了,这里就用下bluebird
mongoose.Promise = require('bluebird');try {mongoose.connect('mongodb://localhost/test', {// 不加参数会报警告// useMongoClient: true})
} catch (error) {console.log(error)
}
mongoose.connection.once('open', function () {console.log('mongoose connection')}).on('error', function (error) {throw error;})app.listen(8888, () => {console.log("服务开启在8888");
})
复制代码

前面代理的端口要和后端启动的端口一致的

修改package.json

# nodemon 就是你不用每次再去手动node server.js了,他会自动的帮你的(在外层的package.json)"scripts": {"server": "nodemon server/server.js"},
复制代码

express怎么不是es6的语法?

# 那就实现一下
# 用babel-cli
npm i bebel-cli --save
修改scripts命令"server": "NODE_ENV=test nodemon --exec babel-node server/server.js"# 不指定babel-node的话,默认是node# 之后你把里面的require改成import是不会报错的
复制代码

mongodb 存储配置

  • 默认你已经安装好mongodb,配好mongodb的环境变量,不配也没关系,多打几个路径而已
  • 在某一盘符下新建一个test(名字随意),里面新建data,etc,logs三个文件夹
  • data是存放数据的,etc是配置文件,logs是日志
  • 在etc下新建mongo.conf
# 内容范例
#数据库路径 (你自己的路径)
dbpath=/home/skl/Desktop/test/data
# 日志输出文件路径
logpath=/home/skl/Desktop/test/logs/mongodb.log
# 错误日志采用追加模式,配置这个选项后mongodb的日志文件会追加到现有的日志文件,而不是重新创建一个文件
logappend=true# 过滤一些无用的日志
quiet=false# 启动日志文件,默认启动
journal=true# 端口号,默认是27017
port=27018
复制代码
  • 需要注意的是:linux和window的文件分隔符是不一样的,pwd打一下就知道了
  • 在etc文件里面运行 mongod --config mongo.conf (指定配置文件)

启动server.js前先链接数据库 ,在etc文件里面运行 mongod --config mongo.conf (指定配置文件)

启动

cd server
npm start
复制代码

访问localhost:8888,会出现

传送门 项目放github上了,可以自己查看

create-react-app 配置scss,ant-design,装饰器,代理,node支持最新语法,express es6 后端,链接mongodb...相关推荐

  1. 如何使用Create React App DevOps自动化工作中所有无聊的部分

    by James Y Rauhut 詹姆士·鲁豪(James Y Rauhut) 如何使用Create React App DevOps自动化工作中所有无聊的部分 (How I automate al ...

  2. Create React App proxy配置

    最近又吃了没文化的亏(哭晕在洗手间≧ ﹏ ≦) 做后台管理系统的时候,需要调一个易连云打印小票的接口, 项目框架是 Create React App+typescript,后端是node.js 本媛负 ...

  3. 【翻译】基于 Create React App路由4.0的异步组件加载(Code Splitting)

    基于 Create React App路由4.0的异步组件加载 本文章是一个额外的篇章,它可以在你的React app中,帮助加快初始的加载组件时间.当然这个操作不是完全必要的,但如果你好奇的话,请随 ...

  4. 在 .NET Core 5 中集成 Create React app

    翻译自 Camilo Reyes 2021年2月22日的文章 <Integrate Create React app with .NET Core 5> [1] 本文演示了如何将 Crea ...

  5. Create React App 2.0 正式发布:Babel 7、webpack 4 等

    英文原文:Create React App 2.0: Babel 7, Sass, and More – React Blog 以下是简要翻译 React 本身是没有附带任何编译工具的,如果没有测试运 ...

  6. 深入浅出 Create React App

    本文差点难产而死.因为总结的过程中,多次怀疑本文是对官方文档的直接翻译和简单诺列:同时官方文档很全面,全范围的介绍无疑加深了写作的心智负担.但在最终的梳理中,发现走出了一条与众不同的路,于是坚持分享出 ...

  7. Vite 3.0 vs. Create React App:比较和迁移指南

    Create React App (CRA) 在 React 社区及其整个生态系统的发展中发挥了关键作用. 在突发奇想构建本地 React 开发环境时,它是不同技能的开发人员的首选工具. CRA 拥有 ...

  8. react快速开始(二)-使用脚手架Create React App创建react应用

    文章目录 react快速开始(二)-Create React App入门 什么是Create React App 快速开始 使用IDE webstrom创建react项目 create react a ...

  9. Create React App 2.0 华丽登场

    贺! Create React App 2.0 在 10/02 正式发布 ?????? Create React App 是由官方所维护的开发工具,主要提供了专属于 React 开发环境的前置工作.简 ...

最新文章

  1. PMCAFF原创作者人气榜,快来看看你排第几?
  2. pyecharts离线使用说明
  3. ITK:将颜色贴图应用于图像
  4. 统计学——单(双)因素方差分析
  5. 智能交通综合管控平台方案
  6. ICIP2019论文合集
  7. 计算机while语句知识点总结,while循环使用方法
  8. 阿里云dataV大屏可视化的使用攻略——vue项目
  9. 线性代数——向量的乘法计算
  10. l/min是什么单位
  11. 2.3 放大电路的分析方法
  12. 计算机平时成绩差有啥影响,2016普通话考试应用技巧解析
  13. Tennessee Eastman(TE)田纳西-伊斯曼仿真平台应用试验与分析
  14. Number of alive brokers ‘0’ does not meet the required replication factor ‘3’ for the offsets topic
  15. SCI投稿及Accept之后的流程
  16. 小米AI实验室入选《麻省理工科技评论》中国“2021人工智能创新研究院”
  17. 群联PS3111 MP开卡工具错误代码解释
  18. ganache-cli命令行参数
  19. 常用的java应用服务器大概介绍
  20. 激励奖金到账扣税计算方法

热门文章

  1. 设计模式:控制反转(Inversion Of Control)
  2. jvm三:jvm参数
  3. 转-D3D中的四元数
  4. 在AWS上搭建NEO私有链(1)
  5. PowerShell runspace 的创建,使用和查错
  6. 双系统不能引导双系统
  7. CentOS虚拟机克隆后网卡配置问题
  8. 解决 json_encode 中文乱码
  9. 根据文件路径生成相应文件
  10. API 2.0Switching Basemaps