美文网首页
聊聊NPM那些事

聊聊NPM那些事

作者: JerryWen | 来源:发表于2019-04-02 12:09 被阅读0次

    哎呦喂~巧了啊!遇见即是缘分,关注一波呗,^-^ 

    今天跟大家聊聊NPM,如有问题,欢迎大家评论指正,我会尽快做好更正,悦人阅己。

    1.When(背景)

    Node.js一经问世,瞬间席卷全球,大量开发者纷纷涌入秀技能,导致成百上千的库或框架涌现(学不动啊!!)。渐渐的发现库之间相互依赖,版本控制,管理起来很麻烦,于是有了NPM。通过该服务器,可以很快的找到要使用的包,并很容易进行下载、安装以及管理已经安装的包。

    2.What(定义)

    NPM(node package manager),通常称为node包管理器。它的主要功能就是管理node包,包括:安装、卸载、更新、查看、搜索、发布等。类似JAVA服务器开发中的MAVEN。

    npm的背后,是基于couchdb的一个数据库,详细记录了每个包的信息,包括作者、版本、依赖、授权信息等。它的一个很重要的作用就是:将开发者从繁琐的包管理工作(版本、依赖等)中解放出来,更加专注于功能的开发。

    3.Where(场景)

    node上的开发使用该技术管理各个依赖包;

    web端开发也使用该技术管理各个依赖包,现在主流的三大前端框架,React,Angular,Vue也都是通过npm进行依赖包管理;

    配置脚本,执行如启动项目、打包等操作;

    4.Why(优势)

    无须像早期开发那样,手动下载各个依赖库文件,粘贴至项目中后手动一个个引入文件;更新时,再网上搜索查找最新版,下载替换;

    更方便维护项目中的依赖库。package.json文件中,集中管理和呈现了所有的依赖库以及版本号。类似MAVEN项目的pom文件,管理所有的依赖jar包。

    通过简单指令,即可轻松安装,升级,卸载所需模块包。如:npm install即可安装package.json中全部所需模块包。

    可搭建NPM私服,用于维护和管理公司内部自建技术组件,规范内部开发技术栈,方便协同开发和项目维护。

    正如作者所说,呃~,那个,还是不翻译了,原味更有味道:

    npm makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you’re sharing.

    5.How(使用)

    npm已集成至node.js中,安装node.js即可安装npm环境。主要罗列几个常用指令:

    node版本升级

    npm install -g n

    n stable

    npm版本升级

    npm install -g npm

    初始化

    npm init

    该指令会提示些基本信息,全部录入后,在项目中自动生成package.json文件,如果以有该文件,则可跳过该命令。

    安装

    npm install

    该指令分为本地安装和全局安装

    本地安装:package会被下载到当前项目所在目录,例如:

    npm install <packageName>

    该指令安装模块后,该模块指令只能在该目录下执行。其他目录下则提示找不到该指令。

    全局安装:package会被下载到npm的全局模块的目录下,安装的package能够在所有目录下使用。

    npm install <packageName> -g

    该指令安装完后,则命令窗口任何目录都可以使用该模块指令。

    安装包后,项目目录下会多出一个node_modules目录,该目录下为安装的所有的模块包。

    npm install <packageName> -save

    会在package.json文件的dependencies属性中添加一条记录;

    npm install <packageName> -save -dev

    会在package.json文件的devDependencies属性中添加一条记录;

    卸载

    npm uninstall <packageName>

    更新

    npm update <packageName>

    它会先到远程仓库查询最新版本,然后查询本地版本。如果本地版本不存在,或者远程版本较新,就会安装。

    查看安装

    npm ls

    可以查看当前目录安装了哪些package

    npm ls -g

    如果是要查看package的全局安装信息,加上 -g 就可以

    运行脚本

    npm 可以在项目package.json里面自定义脚本命令,在命令行中可以通过执行npm run 脚本名称来执行这段脚本,以下四个命令可以简写

    npm start === npm run start

    npm stop === npm run stop

    npm test === npm run test

    npm restart === npm run stop && npm run restart && npm run start

    6.Deep

      配置全局路径和缓存路径设置

    由于C盘空间宝贵,但npm默认安装至C盘目录,故我们需要做下目录迁移,重装系统时,模块文件也能正常保留。

    .npmrc位置: C:/Users/[username]/.npmrc

    npm实际去找全局命令的目录:C:/Users/[username]/.npmrc 文件内容的prefix值

    npm包全局cache目录:C:/Users/[username]/.npmrc 文件内容的cache值

    故修改路径可以直接编辑.npmrc文件,添加prefix和cache的新的路径

    prefix=D:\SoftDev\Conf\NodeJs\node_global

    cache=D:\SoftDev\Conf\NodeJs\node_cache

    亦可通过指令进行操作,进行修改配置

    npm config set prefix "你想要的模块全局路径"

    npm config set cache "你想要的缓存全局路径"

    查看所有配置

    npm config list

    注:配置完,注意修改系统环境变量,将新的模块全局路径添加至path中,否则添加的模块指令无法全局使用。

    package.json

    定义了项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,配置项目所需的运行和开发环境。

    字段相当多,但最重要的的是下面几个

    name: package的名字

    version: package的版本,当package发生变化时,version也应该跟着一起变化

    dependencies: package的应用依赖模块,即别人要使用这个package,至少需要安装哪些东东。

    devDependencies:package的开发依赖模块,即别人要在这个package上进行开发

    package版本

    在package.json里,你经常会在包名后看到类似"~0.1.0"这样的字符串,这就是包的版本啦。下面会列举最常见的版本声明形式,以及版本书写的要求:

    指定版本:比如1.2.2,遵循“大版本.次要版本.小版本”的格式规定,安装时只安装指定版本。

    波浪号(tilde)+ 指定版本:比如~1.2.2,表示安装1.2.x的最新版本(不低于1.2.2),但是 不安装1.3.x,也就是说安装时不改变大版本号和次要版本号。

    插入号(caret)+ 指定版本:比如ˆ1.2.2,表示安装1.x.x的最新版本(不低于1.2.2),但是不安装2.x.x,也就是说安装时不改变大版本号。需要注意的是,如果大版本号为0,则插入号的行为与波浪号相同,这是因为此时处于开发阶段,即使是次要版本号变动,也可能带来程序的不兼容。

    latest:安装最新版本

    相关文章

      网友评论

          本文标题:聊聊NPM那些事

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