Node.js
Node.js是一个基于Chrome V8引擎JavaScript 运行环境。Node.js 使用一个事件驱动、非阻塞时I/O的模式。Node.js的包管理器npm,是全球最大的开源库生态系统。
Node.js:解释执行js代码,不是框架等等,而是一个环境
Chrome V8引擎:独立的引擎,可以安装在很多地方,可以将js代码编成机器码并加以优化,其运行速度媲美二进制。
Node.js 可以快速的在非浏览器情况下解释执行js代码
事件驱动(异步依赖于这一个特性)
非阻塞时I/O的模式(配合事件驱动)
NPM
1.安装npm后下载相关的包时,如果出现错误:no such file or directory, open ‘../package.json‘,
json格式的文件,定义了所以依赖包的信息:比如说文件使用的模块、模块名称、模块版本等等。一般来说,开发人员进行数据传递时,可能将node_modules这个包和代码一起压缩然后传递。如果使用版本管理工具,可能也将node_modules纳入版本管理下。但这会花费时间,一般来说这个文件夹都是一眼的,而且比较大,没有必要进行版本维护或传递。在这里我们只需要约定package.json这个文件就可以了,之后如果传递发生变化,开发人员只要根据package.json中的内容进行传递和版本维护即可。
2.npm常用命令
卸载:npm uninstall gulp --save-dev
更新:npm update
npm命令列表:npm
npm命令帮助:npm install -h
安装简写:npm i
安装生产依赖的包:npm i --production
安装开发依赖的包:npm i --dev
安装全局依赖的包:npm i -g
建立package.json文件:npm init
3.杂项
dependencies:生产环境所依赖的包(依赖的一些库:bootstrap,jQuery等)
devDependencies:开发过程所依赖的包(打包、测试)
version:1.0.0,(格式:主版本号.副版本号.补丁版本号),一般,主版本要互相兼容,而不同主版本可以有一些互不兼容的设置
前缀:(^ , ~ , >=, <=, >, <):"jquery": "^3.2.1"
^:大于等于这个版本,且主版本需要一致。假设现在版本是3.2.1,则符合规定:3.x.x
~:前面几位要相同,最后一位可以不同。假设现在版本是3.2.1,则符合规定:3.2.x。假设现在版本是3.2,则符合规定:3.x。
没有前缀:精确匹配,3.2.1
全局依赖:本地文件都可以使用过,不需要每个项目都安装一遍,经常性一些工具包都选用全局安装
报错:Please try running ....root/Administrator
使用管理员权限运行这个命令,
mac下出现:加上sudo,表示用管理员权限执行命令,sudo npm install gulp。
win下出现,用管理员权限打开cmd窗口。
安装文件后,自动更新package.json的内容,要加上命令--save(生产)或--save-dev(开发),如:sudo npm install gulp --save 或 sudo npm install gulp --save-dev
一般,开发的包只用于开发,生产的包用于生产和开发。
多个浏览器同步刷新:npm install -g browser-sync
启动该插件:browser-sync start --server "src" --file "src"(第一个src,是指总路径,第二个src,是指更新内容,这里指src文件夹下所有文件,也可以写成 **/*.js:监听所有js文件。可以写成 **/js/*.js:监听js文件夹下的js文件)