认识Web、桌面和移动app新开发模式 - 基于Node.js环境和VS Code工具

一、开发环境的搭建(基于win10)

1、安装node.js和npm

  • node.js官网下载安装包(包含npm)进行安装
  • 验证node.js是否安装成功,在命令行窗口输入命令node -v通过查看版本进行验证
  • 验证npm是否安装成功,在命令行窗口输入命令npm -v通过查看版本进行验证

2、配置npm包管理器

  • 由于国外的镜像不稳定,所以一般需要配置淘宝NPM镜像,配置命令如下:

     npm config set registry https://registry.npm.taobao.org
  • 配置npm包的全局存放路径(默认路径C:\Users\JeffreyYu\AppData\Roaming\npm):

     npm config set prefix "C:\Program Files\nodejs\node_global"
  • 配置npm-cache的路径(默认路径C:\Users\JeffreyYu\AppData\Roaming\npm-cache):

    npm config set cache "C:\Program Files\nodejs\node_cache"

3、安装配置cnpm包管理器(默认配置的是淘宝npm镜像)

  • 安装命令如下:
      npm install -g cnpm --registry=https://registry.npm.taobao.org

4、安装配置yarn包管理器

  • 安装命令:

     npm install -g yarn 或
    cnpm install -g yarn

    通过yarn包管理器都有会yarn.lock文件

    通过yarn --version命令验证是否安装成功

  • 配置淘宝镜像

     yarn config set registry https://registry.npm.taobao.org

5、安装前端自动化构建工具

  • gulp安装命令:
      npm install -g gulp –registry=https://registry.npm.taobao.org
  • grunt安装命令:
      npm install -g grunt

Gulp/Grunt 可以理解为帮助前端自动化构建的工具,用于优化前端工作流程。比如自动刷新页面、combo、压缩css、js、编译less等等。推荐Gulp。

6、安装前端模块打包(预编译)工具

常用模块化方案

  • webpack安装命令:
      npm install -g webpack
  • browserify安装命令:
      npm install -g browserify
  • 前端模块化的方案 browserify/webpack 和 seajs/requirejs 的区别:
    • 1、seajs/requirejs : 是一种"在线编译" 模块的方案,相当于在页面上加载一个CMD/AMD解释器。这样浏览器就认识了define、exports、module这些东西。也就实现了模块化。

    • 2、webpack/browserify : 是一个"预编译"模块的方案,相比于上面 ,这个方案更加智能。这里以webpack为例。首先,它是预编译的,不需要在浏览器中加载解释器。另外,你在本地直接写JS,不管是 AMD / CMD / ES6 风格的模块化,它都能认识,并且编译成浏览器认识的JS

7、关于package.json的配置

  • 在package.json里面dependencies依赖包的版本号前面的符号有两种,一种是~,一种是^。

    • 的意思是匹配最近的小版本,比如1.0.2将会匹配所有1.0.x版本,但不匹配1.1.0
    • 的意思是匹配最近的大版本,比如1.0.2 将会匹配所有1.x.x, 但不包括2.x.x

二、基于Angular(V2)开发的前端开发

1、设置开发环境安装(安装命令行工具Angular CLI)

  • 安装(全局安装)命令:
     npm install -g @angular/cli

 cnpm install -g @angular/cli
  • 卸载命令
     npm uninstall -g @angular/cli
     npm cache clean

2、创建新项目

  • 安装命令:
      ng new project-name
  • 包管理器设置命令:
      ng set --global packageManager=yarn 或
    ng set --global packageManager=cnpm

3、启动开发服务器

  • 进入项目,并启动服务器命令:
      cd project-name
    ng serve --open

三、基于React开发的前端开发

1、设置开发环境安装(安装命令行工具create-react-app)

  • 安装(全局安装)命令:
     npm install -g create-react-app 或
    cnpm install -g create-react-app
  • 卸载命令
     npm uninstall -g create-react-app
    npm cache clean

2、创建新项目

  • 创建命令:
      create-react-app project-name

3、启动开发服务器

  • 进入项目,并启动服务器命令:
      cd project-name
    npm start

四、基于Vue开发的前端开发

1、设置开发环境安装(安装命令行工具vue-cli)

  • 安装(全局安装)命令:
     npm install -g vue-cli 或
    cnpm install -g vue-cli
  • 卸载命令
     npm uninstall -g vue-cli
    npm cache clean

2、创建新项目(基于 webpack 模板)

  • 创建命令:
      vue init webpack my-project

3、启动开发服务器

  • 进入项目命令:
      cd my-project
  • 安装依赖包命令:
      npm install
  • 启动服务器命令:
      npm run dev

五、基于Electron的桌面app开发

For instance, Electron uses just the rendering library from Chromium rather than all of Chromium. This makes it easier to upgrade Chromium but also means some browser features found in Google Chrome do not exist in Electron.

Electron (原名 Atom-Shell)是 GitHub 开源的跨平台桌面应用开发框架,框架基于Node.jsChromium进行开发的,该框架允许你使用JavaScript, HTML 和 CSS来开发桌面应用。基于Electron框架开发的有 Visual Studio CodeAtom 等著名开源编辑器项目。

开始使用

  • electron-quick-start 的官方使用方法:

      # Clone this repository
    git clone https://github.com/electron/electron-quick-start
    # Go into the repository
    cd electron-quick-start
    # Install dependencies
    npm install
    # Run the app
    npm start
  • 笔者的使用方法

    • 下载electron-quick-start

    • 用 Visual Studio Code(VS Code) 打开 electron-quick-start文件夹

    • 在VS Code中打开命令行工具,输入命令npm install安装依赖包

    • 配置launch.json

    {
    "version": "0.2.0",
    "configurations": [
    {
    "type": "node",
    "request": "launch",
    "name": "Electron Main",
    "runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron",
    "program": "${workspaceRoot}/main.js",
    "protocol": "legacy"
    }
    ]
    }
    • 配置完后即可通过VS Code启动调试

Electron的开发环境搭建完毕。此外,Github还有一个与Electron有些类似的开源项目nw.js ,微信小程序开发工具就是基于nw.js开发的。

六、基于Ract Native的移动app开发

1、设置开发环境安装(安装命令行工具create-react-native-app)

  • 安装(全局安装)命令:
     npm install -g create-react-native-app 或
    cnpm install -g create-react-native-app
  • 卸载命令
     npm uninstall -g create-react-native-app
    npm cache clean

2、创建新项目

  • 创建命令:
      create-react-native-app AwesomeProject

3、启动开发服务器

  • 进入项目命令:
      cd AwesomeProject
  • 启动服务器命令:
      npm start

启动后命令窗口会打印QR code和服务器的地址(在VS Code的命令行中看不到),在手机端下载Expo App,用该App扫描QR code或输入服务器端的地址,手机端会自动加载服务器端的资源,在服务器端改动代码后保存会自动加载到手机端

认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具的更多相关文章

  1. [转载]Web前端和后端之区分,以及面临的挑战

    原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...

  2. Web前端和后端之区分,以及…

    原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...

  3. [转载]Web前端和后端之区分,以及面临的挑战【转】

    原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...

  4. Web前端和后端开发的区别和要求

    Web前端和后端开发的区别和要求 有时候自己会分不清,其实是因为前后端都了解,类似于全栈工程师,但又什么都不是很精通.那到底什么是前端.后端呢,我整理了一些企业要求级别的前端/后端基础,开发框架等. ...

  5. Fenix – 基于 Node.js 的桌面静态 Web 服务器

    Fenix 是一个提供给开发人员使用的简单的桌面静态 Web 服务器,基于 Node.js 开发.您可以同时在上面运行任意数量的项目,特别适合前端开发人员使用. 您可以通过免费的 Node.js 控制 ...

  6. koa : Express出品的下一代基于Node.js的web框架

    https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501579966a ...

  7. 基于 Node.js 平台,快速、开放、极简的 web 开发框架。

    资料地址:http://www.expressjs.com.cn/ Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. $ npm install express -- ...

  8. Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com

    Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com

  9. 创业笔记-Node.js入门之一个完整的基于Node.js的web应用

    用例 我们来把目标设定得简单点,不过也要够实际才行: 用户可以通过浏览器使用我们的应用. 当用户请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 用户可 ...

随机推荐

  1. Firewalld防火墙与ICMP攻击

    原文地址:http://www.excelib.com/article/293/show 提到ICMP大家应该都很熟悉,可能有人会说:不就是ping吗?但是说到ICMP攻击以及相关防御措施可能就有的人 ...

  2. jq from表单 取值

    //获取表单参数 var DataDeal = { formToJson: function (id) { var data=$(id).serialize();//获取值 data = decode ...

  3. 【原】C++11并行计算 — 数组求和

    本文转载请注明出处 -- polobymulberry-博客园 0x00 - 前言 最近想优化ORB-SLAM2,准备使用并行计算来提高其中ORB特征提取的速度.之前对并行计算方面一窍不通.借此机会, ...

  4. java http头信息

    JAVA 从http请求头中获取Header信息: request.getHeader(),request.getHeaderNames(),request.getHeaders() Java获取Ht ...

  5. Oracle profile含义、修改、新增

    profiles文件是口令和资源限制的配置集合,包括CPU的时间.I/O的使用.空闲时间.连接时间.并发会话数量.密码策略等对于资源的使用profile可以做到控制会话级别或语句调用级别.oracle ...

  6. cx_Oracle.DatabaseError: ORA-12541: TNS:no listener

    问题:利用Python连接Oracle时报错,完整过程如下 import cx_Oracle conn = cx_Oracle.connect('testma/dingjia@192.168.88.1 ...

  7. 前段基础之HTML

    HTML 初识 web服务本质 import socket def main(): sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s ...

  8. HTTPS安全超文本传输协议

    一.什么是HTTPS 简单的理解HTTPS就是使用SSL/TLS加密内容的.安全的HTTP协议 HTTPS = HTTP + SSL/TLS 二.对称加密与非对称加密 对称加密:加密和解密使用同一密钥 ...

  9. 01——微信小程序官方demo讲解——文件结构

    1.环境概览 首先环境配置的部分略过,打开小程序开发工具.选择一个空目录,即可开始一个demo项目. 其中新建成功后的目录如图所示: 2.文件结构描述 如图所示,左边是界面展示,右边是目录结构. 目录 ...

  10. ansible初识二

    一.ansible模块(yum.pip.service.conr.user.group) 上篇中我们已经学了ansible 的几个模块, 接下来再来学习几个, 那么你是否知道ansible 一共有多少 ...