认识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. Spring Cloud 服务网关Zuul

    Spring Cloud 服务网关Zuul 服务网关是分布式架构中不可缺少的组成部分,是外部网络和内部服务之间的屏障,例如权限控制之类的逻辑应该在这里实现,而不是放在每个服务单元. Spring Cl ...

  2. CSS各浏览器HACK

    /*firefox*/@-moz-document url-prefix(){.mainNews div.l ul{padding-bottom:12px}} /*ie6*/{_padding:2px ...

  3. librtmp接收flv流中提取h264码流:根据多个资料汇总

    rtmpdump可以下载rtmp流并保存成flv文件.如果要对流中的音频或视频单独处理,需要根据flv协议分别提取.简单修改rtmpdump代码,增加相应功能.1 提取音频:rtmpdump程序在Do ...

  4. java代码----FileInputStream 和File

    总结:程序运行后,发现新建的两个文件里的东西突然i清空了.以为是程序出错了. 然后慌了,之后我再运行时,发现可以了.是电脑的问题吧 一如既往的打扰他,只因为他优秀 package com.a.b; i ...

  5. Tomcat中work目录

    Tomcat中work目录的作用: jsp运行时都要先转换成servlet,tomcat容器启动时会在目录下的work目录中生成一系列的文件夹和.java文件和编译后的.class文件. jsp最终转 ...

  6. web项目中遇到的Maven包依赖冲突问题解决

      在搭建web项目时,出现一个比较诡异的问题,任何JSP页面突然都不能够正常地显示,系统爆出HTTP:500(服务器内部错误)的页面   HTTP Status 500 - java.lang.No ...

  7. 十三 Thread的一些常用方法

    setName() : 给线程起名字. isAlive() : 线程是否存或. currentThread() : 取得当前线程. getId() : 取得线程的唯一标识.

  8. 后台给GridView绑定数据时给每一行添加一个JS方法

    --------JS function ReturnDictionaryValues(srcElement) { top.document.getElementById("_DialogFr ...

  9. C++中结构体与类的区别 1

    转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.html C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据 ...

  10. EMQ、Websocket、MQTT

    mqtt.fx的安装和使用 https://blog.csdn.net/nicholaszao/article/details/79211965 EMO 使用说明 http://emqtt.com/d ...