美文网首页
WEB__backend--npm

WEB__backend--npm

作者: 33jubi | 来源:发表于2020-02-27 15:39 被阅读0次

Backend

github kjs托管静态网页

About Node.js

  • js build on Chrome’s V8 engine
  • Asynchronous,event driven
  • Non-blocking I/O
  • Often used for building back-end services
  • Fast and scalable
    事务:无论多少人,系统排队,单点系统

Node.js Architectire

Application
|
Node.js API
|
Node.js Bindings * Node.js or C/C++ addons
|
V8 * libuv * c-ares * HTTP parser * OpenSSL * zlib

Node Package Manager(NPM)

https://node.js.org/en/knowledge/getting-started/npm/what-is-npm/
node version document:
https://nodejs.org/en/about/repleases/

语义化
sematic verioning 2.0

版本控制

summary
Given a version number MAJOR.MINOR.PATCH, increment the:

  1. Major version when u make incompatible(不兼容) API changes
  2. Minor version when u add functionality in a backwards compatible manner, and
  3. Patch version when u make backwards compatile bug fixes.
    Additional labels for pre-replease and build metabata are available as extensions to the MAJOR.MINOR.PATCH format

UNSTABLE:
MAINTENCE:不升级版本
ACTIVE:long term support,不允许活跃开发,可以不频繁增加feature
CURRENT: 活跃开发版本(随时变动)

npm install 命令背后信息

list tag

terminal

npm init
npm install
npm install eslint// 在package.json里会显示

npm i //=npm install

npm info eslint



====method 1====
在package.json中添加
“publishConfig":{

}
====method 2====
npm help|grep dist=>
dist-tag=>创建

版本号

"dependencies": {

    "eslint": "^6.8.0"   //只安装6.8.0

}



"dependencies": {

    "eslint": "^6.*.*"   //安装6版本下的最大

}

"dependencies": {

    "eslint": "*"   //安装lastest下的最大

}
  • 安装包所需要的包的层层依赖,每个包的package中可以查看
    树结构

windows file name有长度限制(安装失败)=》A/B依赖C的不同版本
不冲突=》各自追寻各自依赖版本

“打平” flat

一级结构
当前目录=》再上一级=》再上一级
版本冲突下,随机谁抢占跟目录谁占有根目录
都可以工作(一个项目依赖不同版本的包是开发中需要尽量避免的状况,但是由于项目跨度和团队工作非常常见)
npm官方工具并不能解决这个问题

举例
github.com/boltpkg/bolt

大版本冲突依然会存在二级目录

npm-scope

@somescope/somepackagename
@公司名/某包
scope命令池(商业问题)

npm-lock.json

"dependencies": {

"@babel/code-frame": {//包名(designed purpose:face book推出概念类似dist-list

"version": "7.8.3",//版本

"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz",//服务器地址(从哪个服务器来)

"integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==",//签名指纹

"requires": {

"@babel/highlight": "^7.8.3"//依赖版本

}

},

npm生态系统松散
无版本约定,只是鼓励按某“版本约定”规则
在不符合版本规定命名的包,相信包,锁住包(lock)使用

创建配置文件
.npmrc

package-lock=false

unix传统
配置文件都以. 开头

terminal

npm uninstall eslint
npm i --production
npm i eslint -D//devDependencies

npm script

json

"scripts": {

"test": "echo \"Error: no test npm info eslintspecified\" && exit 1"
"jr":"echo \"hello\""

},

约定俗成的可以直接找 npm test(内置的)
自己加的非内置的需要用run来运行 npm run jr

如果在script 里加npm命令

"scripts": {

"test": "echo \"Error: no test npm info eslintspecified\" && exit 1",
"jr":"echo \"hello\"",
"start":"npm -v",

},

1.npm做准备工作
append到 bin 的环境变量中,bin中优先级高于操作系统优先级

hash bin头

REPL

Read-Eval-Print-Loop(REPL)
https://nodejs.org/api/repl.html

相关文章

  • WEB__backend--npm

    Backend github kjs托管静态网页 About Node.js js build on Chrome...

网友评论

      本文标题:WEB__backend--npm

      本文链接:https://www.haomeiwen.com/subject/xbxxhhtx.html