码迷,mamicode.com
首页 > 其他好文 > 详细

Create A New Project笔记

时间:2015-09-22 14:38:14      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:

创建一个新项目

用 NPM 创建一个新的项目

  1. $ mkdir ilovereact
  2. $ cd ilovereact
  3. $ npm init

初始化 Git 仓库

  • 添加Node .gitignore
  1. curl https://raw.githubusercontent.com/github/gitignore/master/Node.gitignore > .gitignore
  • 创建仓库
  1. $ git init
  2. $ git add .
  3. $ git commit -"Project init"
  4. $ git show HEAD

HTML 样板文件

创建index.html。 可以直接调整HTML5-boilerplate

  1. <!-- 使用 html5 语法 -->
  2. <!doctype html>
  3. <html lang="en">
  4. <head>
  5. <meta charset="utf-8">
  6. <!-- 强制 IE 遵循现代标准 -->
  7. <meta http-equiv="x-ua-compatible" content="ie=edge">
  8. <title></title>
  9. <meta name="description" content="">
  10. <!-- 在移动端禁用缩放。对响应式设计有用。 -->
  11. <meta name="viewport" content="width=device-width, initial-scale=1">
  12. <!-- <link rel="apple-touch-icon" href="apple-touch-icon.png"> -->
  13. <!-- <link rel="stylesheet" href="css/app.css"> -->
  14. </head>
  15. <body>
  16. <h1>I Love React</h1>
  17. <!-- <script src="js/app.js"></script> -->
  18. </body>
  19. </html>

发布到GitHub

  • 首先到GitHub上创建一个新项目, 命名为sikeio-ilovereact。接下来,添加远程仓库:
  1. $ git remote add origin git@github.com:yinxufeng/sikeio-ilovereact.git
  2. $ git push -u origin master
  1. 要关联一个远程库,使用命令git remote add origin git@server-name:path/repo-name.git
  2. 关联后,使用命令git push -u origin master第一次推送master分支的所有内容;
  3. 此后,每次本地提交后,只要有必要,就可以使用命令git push origin master推送最新修改;
  • 使用 GitHub Pages 来托管这个网页。所有你需要做的是推送到分支 gh-pages:
  1. git push origin master:gh-pages

然后你应该可以看到这个页面:http://yinxufeng.github.io/sikeio-ilovereact/

使用 BrowserSync 实时编辑

安装 BrowserSync

  1. $ npm install browser-sync@2.9.3 --save -d

--save把 browser-sync 添加到package.json
-d使 npm 输出更多的日志信息。

如果一个 NPM 包是一个命令行工具,可执行文件会被安装在node_modules/.bin目录中。

  1. $ ls node_modules/.bin
  2. browser-sync

为了让系统在./node_modules/.bin中查找browser-sync,我们需要把那个目录添加到 PATH 环境变量中:

  1. # vi ~/.bashrc or ~/.zshrc or ~/.bash_profile
  2. export PATH=$PATH:./node_modules/.bin

使用 BrowserSync 实时编辑

运行 BrowserSync 服务器

  1. $ browser-sync start --server --files=index.html

--files=index.html指定如果index.html改变了,自动刷新浏览器。
使用浏览器打开 http://localhost:3002, 你可以开始实时编辑了

Makefile

创建Makefile:

  1. # Makefile
  2. .PHONY: server
  3. server:
  4. # WARNING: The indentation MUST be a tab. Spaces won‘t work.
  5. browser-sync start --server --files=index.html

运行 browser-sync:

  1. make server

一个 Makefile“规则”通常会创建作为输出的文件..PHONY: server是说server是一个任务,而且并不创建文件。

市面上的 Makefile 教程几乎都是关于 C/C++ 项目的。查看一个不错的介绍:Using GNU Make as a Front-end Development Build Tool

项目 CSS 基础

CSS基础

在我们开始这个项目前,我们应该添加一些 CSS 来解决常见的跨浏览器问题。此外,为了让 CSS 布局更简单,我们会采用 ReactNative 的flexbox设置。

使用 PostCSS 向标准 CSS 添加特性

SassLess 是最受欢迎的两个 CSS 预处理器。它们是有着大量特性(变量,循环语句,条件语句,函数)的完备语言,可以生成复杂的 CSS 样式表。我们不需要那个。

Less/Sass 的替代品之一是 PostCSS。PostCSS 不是一种语言。它是一个解析器,解析标准 CSS 语法,而且允许你安装 JavaScript 插件通过不同方法来转换 CSS。使用 PostCSS,你可以添加你需要的功能。

  • 安装 PostCSS command line tool:

    1. npm install postcss-cli@2.1.0 --save-dev

使用 autoprefixer 添加浏览器引擎前缀。

查看一下 flexbox 的浏览器支持表 Can I Use: Flexbox

你需要为每个你支持的浏览器添加浏览器引擎前缀。 这条 CSS 规则也许看起来是这样:

  1. .a-flexible-row {
  2. /* 不用浏览器引擎前缀就支持 flexbox 的浏览器 */
  3. flex-direction: row;
  4. /* Safari 8, Android 4.3 或更早版本, iOS Safari 7/8 */
  5. -webkit-flex-direction: row;
  6. /* IE 10 */
  7. -ms-flex-direction: row;
  8. }

autoprefixer工具自动给你添加浏览器引擎前缀。另外,它使用一个 浏览器市场占有率数据库 来决定某个特殊的特性是否仍旧需要浏览器引擎前缀。

  • 安装 autoprefixer:
  1. npm install autoprefixer@6.0.2 --save-dev

在全局使用 ReactNative flexbox settings。

ReactNative 中元素默认从上到下排列,但是在浏览器中默认是从左到右排列。结果是 ReactNative 的设定更加友好,所以让我们使浏览器表现出同样的行为。

  • 添加 ReactNative flexbox settings 到文件 css/app.css 中:
  1. body, div, span {
  2. box-sizing: border-box;
  3. position: relative;
  4. display: flex;
  5. flex-direction: column;
  6. align-items: stretch;
  7. flex-shrink: 0;
  8. align-content: flex-start;
  9. border: 0 solid black;
  10. margin: 0;
  11. padding: 0;
  12. }
  • postcssautoprefixer 来转换CSS文件:
  1. mkdir -p bundle
  2. postcss --use autoprefixer css/app.css --output bundle/app.css

可以看到在 bundle/app.css 中,自动添加前缀的 CSS 属性

normalize.css

浏览器行为表现彼此略有不同。normalize.css使浏览器行为更相似

  • 安装normalize.css
  1. npm install --save normalize.css@3.0.3

我们使用postcss-import插件来导入 normalize.css 而不是使用另外一个 link 元素。

  • 安装postcss-import
  1. npm install --save-dev postcss-import@7.0.0
  • 在 css/app.css 里导入normalize.css
  1. /* css/app.css */
  2. @import "../node_modules/normalize.css/normalize.css";
  3. /* 因为 normalize.css 被安装在 node_modules 目录里,你实际上可以使用包名称来导入
  4. @import "normalize.css";
  5. */
  • 生成打包后的CSS
  1. postcss --use autoprefixer --use postcss-import css/app.css --output bundle/app.css

实时编辑

把Makefile 改成下面这样:

  1. .PHONY: css
  2. css:
  3. mkdir -p bundle
  4. postcss --watch --use autoprefixer --use postcss-import css/app.css --output bundle/app.css
  5. .PHONY: server
  6. server:
  7. browser-sync start --server --files=‘index.html,bundle/app.css‘
  8. .PHONY: clean
  9. clean:
  10. rm -r bundle
  1. 为 postcss 添加了 --watch 选项,因此每当你作出改动时,它重新构建 css/app.css。
  2. 把 bundle/app.css 添加到了 --files,因此每当我们重新构建时, BrowserSync 重新加载。

如果用Brackets代码编辑器,可以不用browser-sync,自带实时编辑功能

Create A New Project笔记

标签:

原文地址:http://www.cnblogs.com/yinxufeng/p/4828788.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!