01-NPM依赖包的管理工具

作者: EndEvent | 来源:发表于2017-07-03 09:08 被阅读198次

    一、NodeJS环境

    • 什么是nodejs
       - 不是JS文件,也不是一个JS框架()
       - 而是Server side Javascript runtime, 服务端的一个JS运行时
       - 可以在node运行JS代码
       - node中只能运行ECMAScript,无法使用 BOM 和 DOM
       - 目前我们的JS是运行在浏览器内核中
       - PHP是什么?是一门脚本语言也是一个运行环境
    

    node是一个基于chrome v8引擎的javascript的运行环境。node使用事件驱动、非阻塞式I/O的模型,使其轻量又高效。node的包管理器npm,是全球最大的开源库生态系统。

    二、Node环境搭建

    • mac node (建议使用nvm安装,方便版本切换)
      pkg安装包

    • mac NVM(Node Version Manager)

      $ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
      $ echo '. ~/.nvm/nvm.sh' >> .bash_profile
      $ nvm install stable
      $ nvm alias default stable
      
    • Windows node (建议使用nvm安装,方便版本切换)
      msi_x64 64位安装包
      msi_x86 32位安装包

    • windows nvm

      • 下载nvm包,选择第一个: nvm-noinstall.zip
      • 将文件内容解压到例如 c:\dev\nvm (将文件拷贝到c:\dev\nvm,解压到当前文件夹)
      • 双击install.cmd不用输入,直接回车,之后再c盘中会生成一个settings.txt文件,将该文件剪切到c:\dev\nvm目录中
      root: C:\dev\nvm
      path: C:\dev\nodejs
      arch: 64 
      proxy: none 
      node_mirror: http://npm.taobao.org/mirrors/node/ 
      npm_mirror: https://npm.taobao.org/mirrors/npm/
    
    • 配置环境变量。刚才点击install.cmd文件,会在环境变量的系统变量中生成两个环境变量:NVM_HOMENVM_SYMLINK;修改这两个变量值,NVM_HOME变量值为: C:\dev\nvm;NVM_SYMLINK变量值为: C:\dev\nodejs; ,在path后面添;%NVM_HOME%;%NVM_SYMLINK%;
    • 打开命令行: nvm v可以看到nvm版本信息,即表示安装完成;
    • 如果没有安装node,可以通过nvm install latest,下载node最新版本;
    第一次下载,在使用use之前,`C:\dev`目录下没有nodejs文件夹,输入例如nvm use 6.3.0后,久会在`C:\dev`目录中看到nodejs文件夹;
    nodejs不是单纯的文件夹,它是一个快捷方式,指向`C:\dev\nvm`中v6.3.0文件夹;
    `C:\dev\nvm`文件夹下的vx.x.x即nodejs对应版本;
    

    nvm list 查看已经安装的版本(版本号前面有带*,表示当前使用版本)
    nvm install 6.3.0 安装对应node对应版本
    nvm use 6.3.0 使用对应node版本

    nvm --- node version manager(node版本管理器),因为NODE版本比较多,开发人员可能依赖很多版本;通过NVM,可以轻松切换于不同的版本之间;

    三、NPM

    NPM官网

    • NPM是什么
      Node Package Manager即是Node应用程序依赖包的管理工具,方便于安装卸载更新等操作;
      NPM是 Node 的开放式模块登记和管理系统,亦可以说是一个生态圈,一个社区;

    • 为什么使用NPM

      - 包很多
      - 场景:我需要用一个A,A依赖B,B依赖C
      - 常见的包管理工具都有循环依赖的功能
      - 你只需记住你要什么东西
    
    • 常见的NPM操作

    // 引导创建一个package.json文件(安装包的信息可保持到项目的package.json文件中,以便后续的其它的项目开发或者他人合作使用,也说package.json在项目中是必不可少的)
    $ npm init

    // 安装一个包,默认安装最新稳定版本
    $ npm install package_name // 本地安装
    $ npm install package_name -g // 全局安装

    // 安装特定版本的包
    $ npm install package_name@版本号

    // 卸载
    $ npm uninstall package_name // 卸载本地
    $ npm uninstall package_name -g // 卸载全局

    // 更新
    $ npm update -g

    // 查看依赖和它们之间的关系
    $ npm ls
    // 查看主要的依赖
    $ npm ls --depth=0
    // 查看全局的所有包()
    $ npm ls --depth=0 -g

    
    
    > 每个版本的nodejs中,都会自带npm,为了统一起见,需要安装一个全局的npm工具是有必要的,因为我们需要安装一些全局的其他包,不会因为切换node版本造成原来下载过的包不可用。
    `$ npm config set prefix 'C:\dev\nvm\npm'`
    // 上述是配置npm的全局安装路径,然后用户文件夹下会生成一个.npmrc的文件,文件内容为: `prefix=C:\dev\nvm\npm`
    // 如果不使用上面方法,可以手动在用户文件夹下(C:\User\liming)创建.npmrc文件,文件内容为: `prefix=C:\dev\nvm\npm`
    
    > `$ npm install npm -g `
    // 下载npm包,在`C:\dev\nvm\npm`目录中可以看到下载中的文件,以后用nmp安装包时加上`-g`就可以把包安装在`C:\dev\nvm\npm`的全局路径下
    // 再为这个npm配置环境变量,变量名`NPM_HOME`,变量值`C:\dev\nvm\npm`;然后再path最前面添加`;%NPM_HOME%`,注意该变量一定是加载`%NVM_SYMLINK%`之前;
    // 如果安装不了(npm镜像源默认是在国外),可以先执行安装cnpm工具,之后通过cnpm安装: `cnpm install npm -g`
    
    >  `$ npm -v`
    // 查看npm的版本,此时使用的都是统一的nmp包了
    
    > `$ npm install -g cnpm --registry=https://registry.npm.taobao.org` 
    安装cnpm工具,并设置淘宝的镜像库,中国版的npm镜像库,`https://registry.npm.taobao.org/`淘宝的,`https://cnpmjs.org/`cnpm工具的, 他们都是npm官方的一个拷贝,他们会每隔10分钟同步一次  【非必要操作,如果下载比较慢可以切换到国内镜像】
    > cnpm工具包如何安装? `cnpm install page_name -g`即将npm换为cnpm即可
    
    
    # 四、NRM
    NRM(Node Registry Manager)即是方便管理NPM的镜像源选择;
    

    $ npm install -g nrm // 安装nrm
    $ nrm ls // 查看镜像源列表
    $ nrm use taobao // 即使用taobao的这个镜像源
    $ nrm test // 测试镜像源的速度

    
    # 五、Bower
    [Bower官网](http://bower.io/)
    - 什么是Bower
    web应用程序依赖项管理工具【包的管理工具,还是重复的轮子】
    
    - 为什么使用Bower
    方便便捷的方式管理包
    
    - Bower安装
    $ npm install bower -g
    
    - Bower使用
    $ bower install page_name

    相关文章

      网友评论

        本文标题:01-NPM依赖包的管理工具

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