03.npm 包管理

  • 通过使用npm来进行基本的包管理

初始化管理

  • 对于每个项目来说都会有自己的依赖文件这时候就需要从开始就通过npm初始化

npm init 或者npm init -y 通过初始化会创建出package.json文件 (不要有中文)

package.json

  • name 项目名称
  • version 版本号 1.. 表示有重大更新 .1. 局部更新 ..1 (1.1.*) bug修补
  • description 项目的说明
  • entry point 项目的入口文件
  • test command 测试
  • git repository git网站(git bub上面找到)
  • keywords 关键字
  • author 作者
  • license 协议(MIT 既可以商用也可以私用)
  • scripts 用来保存常用命令 (npm run scripts中的key)
  • dependencies
    • 一个完整的版本号组表示为: [主要版本号,次要版本号,补丁版本号]
    • > +版本号 下载大于某个版本号,npm会下最新版
    • < +版本号 下载小于某个版本号,npm会下小于这个版本号最新版
    • <= 小于等于 一定会下你写的这个版本,除非没有你写的这个版本
    • >= 大于等于 下载最新版
    • *、" "、X 任意 npm会给你下最新版
    • ^ +版本号 不跃迁版本下载,^2.1.0 npm会下载大版本不变,去下载2.x.x版本里的最近版
    • ~ +版本号 会去下约等于这个版本的最新版,在大版本不变的情
  • 参考文献 package.json全字段解析
  • 参考2
  • 官方文档

下载包

  • 本地下载 npm install jquery 或者 npm i jquery
  • npm install jquery --savenpm install -S jquerynpm i -S jquery 本地下载并保存到package.json中的dependencies
  • npm install jquery --save-devnpm install -D jquerynpm i -D jquery 本地下载并保存到package.json中的devDependencies
  • npm install 将package.json中devDependencies和dependencies 都进行下载
  • npm install -production 只下载devpendencies中的文件
  • npm install angular@1.5.8 根据不同版本下载包
  • npm install -g nrm 全局进行下载
  • npm install angular --registry=https://registry.npm.taobao.org 修改镜像源 从淘宝下载angular
  • 下载包 install 删除包 uninstall 更新包 update

查看包

  • npm info jquery 查看包的详细信息
  • npm docs jquery 打开包homepage 地址

查看更多包的相关信息

nrm(镜像源切换) npm (包下载) nvm(node版本管理)

  • nrm 镜像源切换,通过nrm切换 .npmrc registry的下载地址
  • npm install -g nrm 全局进行下载
  • nrm ls 查看镜像源
  • nrm use taobao 切换镜像源
  • nrm test 测试下载速度
  • nrm切换好镜像源以后 直接影响npm 下载,设置好以后不需要再做修改

bower npm yarn 常用的下载包的工具

  • 下载 npm install bower -g
  • bower下载慢 bower会把依赖的包也下载过来 node4(npm 2 也会将依赖的包也下载过来)
  • bower 的下载地址github npm 从npmjs的官网下载
  • bower 可以指定下载的路径
    //通过创建.bowerrc 添加
    {
    "directory":"js/common" //你的文件路径
    }

yarn 也是一个下载工具

  • yarn由facebook公司在npm的基础上创建一个下载工具
  • yarn 下载速度要快一些 更方便管理主体包所依赖的包 yarn在做管理时更加精确
  • 全局下载yarn npm install -g yarn
  • yarn add jquery 下载jquery
  • yarn remove jquery 移除jquery
  • yarn init yarn初始化
  • yarn global add http-server 全局下载包

bower yarn npm

  • bower 可以指定路径下载
  • yarn 下载速度快 管理精确
  • npm 最基本的下载

项目初始化

    1. 方便管理你的项目
    1. 如果有其他人使用能很快的知道这个项目是做什么用
    1. 通过script标签来简化 命令行
    1. 方便管理你项目中所需的依赖

浏览器的包 node中的包的不同

  • 浏览器引用一个包 script:src seajs commjs 都需要下载 异步
  • node的包不需要下载(node运行在本地)同步的node CMD同步 Commonjs规范 (require moduels)

node 模块化(是以功能为主)

  • 在node中有以下的方式引用包或者是模块化

  • 暴露出去的方式一共有以下3种方式

  • 在node中找模块有下面这么几种方式寻找

  • 缓存中->系统包->node_modules->按照路径查找

  • 会在系统缓存中查找对应包

  • 如果是按照系统模块查找 按照模块的名称查找

  • 如果是按照模块的方式查找 node_modules

  • 如果是路径查找 .node(c++代码)->.js->.json->报错 (不建议省略后缀名)

global 全局对象的方式引用包

  • other.js 在other中通过 global.a=100 将a暴露出去

  • app.js 然后在app.js 通过require的方式加载other(require('相对路径或者绝对路径'))

  • global暴露模块有一个问题是会污染全局变量

modules

  • 通过modules.export将属性或者是方法暴露给外界
  • 外界通过require()的方式获取暴露出来的内容 let b=require('./other2.js)
// other2.js
module.exports={
    b:b
}

exports

  • 通过modules.export将属性或者是方法暴露给外界
  • 外界通过require()的方式获取暴露出来的内容 let b=require('./other2.js) b.b
// other2.js
exports.b=200

系统包

  • path 路径
  • fs 文件系统
  • assert 断言
  • http 网络服务
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容