认识Web前端、Web后端、桌面app和移动app新开发模式 - 基于Node.js环境和VS Code工具
认识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开发
Electron (原名 Atom-Shell)是 GitHub 开源的跨平台桌面应用开发框架,框架基于Node.js 和 Chromium进行开发的,该框架允许你使用JavaScript, HTML 和 CSS来开发桌面应用。基于Electron框架开发的有 Visual Studio Code 和 Atom 等著名开源编辑器项目。
开始使用
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
笔者的使用方法
用 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工具的更多相关文章
- [转载]Web前端和后端之区分,以及面临的挑战
原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...
- Web前端和后端之区分,以及…
原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...
- [转载]Web前端和后端之区分,以及面临的挑战【转】
原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...
- Web前端和后端开发的区别和要求
Web前端和后端开发的区别和要求 有时候自己会分不清,其实是因为前后端都了解,类似于全栈工程师,但又什么都不是很精通.那到底什么是前端.后端呢,我整理了一些企业要求级别的前端/后端基础,开发框架等. ...
- Fenix – 基于 Node.js 的桌面静态 Web 服务器
Fenix 是一个提供给开发人员使用的简单的桌面静态 Web 服务器,基于 Node.js 开发.您可以同时在上面运行任意数量的项目,特别适合前端开发人员使用. 您可以通过免费的 Node.js 控制 ...
- koa : Express出品的下一代基于Node.js的web框架
https://www.liaoxuefeng.com/wiki/001434446689867b27157e896e74d51a89c25cc8b43bdb3000/001434501579966a ...
- 基于 Node.js 平台,快速、开放、极简的 web 开发框架。
资料地址:http://www.expressjs.com.cn/ Express 基于 Node.js 平台,快速.开放.极简的 web 开发框架. $ npm install express -- ...
- Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com
Koa -- 基于 Node.js 平台的下一代 web 开发框架 koa.bootcss.com
- 创业笔记-Node.js入门之一个完整的基于Node.js的web应用
用例 我们来把目标设定得简单点,不过也要够实际才行: 用户可以通过浏览器使用我们的应用. 当用户请求http://domain/start时,可以看到一个欢迎页面,页面上有一个文件上传的表单. 用户可 ...
随机推荐
- Spring Cloud 服务网关Zuul
Spring Cloud 服务网关Zuul 服务网关是分布式架构中不可缺少的组成部分,是外部网络和内部服务之间的屏障,例如权限控制之类的逻辑应该在这里实现,而不是放在每个服务单元. Spring Cl ...
- CSS各浏览器HACK
/*firefox*/@-moz-document url-prefix(){.mainNews div.l ul{padding-bottom:12px}} /*ie6*/{_padding:2px ...
- librtmp接收flv流中提取h264码流:根据多个资料汇总
rtmpdump可以下载rtmp流并保存成flv文件.如果要对流中的音频或视频单独处理,需要根据flv协议分别提取.简单修改rtmpdump代码,增加相应功能.1 提取音频:rtmpdump程序在Do ...
- java代码----FileInputStream 和File
总结:程序运行后,发现新建的两个文件里的东西突然i清空了.以为是程序出错了. 然后慌了,之后我再运行时,发现可以了.是电脑的问题吧 一如既往的打扰他,只因为他优秀 package com.a.b; i ...
- Tomcat中work目录
Tomcat中work目录的作用: jsp运行时都要先转换成servlet,tomcat容器启动时会在目录下的work目录中生成一系列的文件夹和.java文件和编译后的.class文件. jsp最终转 ...
- web项目中遇到的Maven包依赖冲突问题解决
在搭建web项目时,出现一个比较诡异的问题,任何JSP页面突然都不能够正常地显示,系统爆出HTTP:500(服务器内部错误)的页面 HTTP Status 500 - java.lang.No ...
- 十三 Thread的一些常用方法
setName() : 给线程起名字. isAlive() : 线程是否存或. currentThread() : 取得当前线程. getId() : 取得线程的唯一标识.
- 后台给GridView绑定数据时给每一行添加一个JS方法
--------JS function ReturnDictionaryValues(srcElement) { top.document.getElementById("_DialogFr ...
- C++中结构体与类的区别 1
转载来源:http://blog.sina.com.cn/s/blog_48f587a80100k630.html C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据 ...
- EMQ、Websocket、MQTT
mqtt.fx的安装和使用 https://blog.csdn.net/nicholaszao/article/details/79211965 EMO 使用说明 http://emqtt.com/d ...