• Node.js--npm


    一、全局安装vs本地安装:
    npm install xxx -g :属于全局安装,将包安装在C:UsersadminAppDataRoaming pm ode_modules目录下,同时在node_modules平级目录生成批处理文件,这样可以在任何地方执行xxx的CIL命令。否则需要cd到项目的cmd命令所在目录再执行/双引号包含可执行命令的全路径,很繁琐。全局安装时的包不可以通过 require() 来引入。
     
    npm install xxx –save-dev :属于本地安装,将包安装在项目根目录下的node_modules目录下的.bin目录下,生成对应的cmd命令,在项目根目录下可以直接运行。可以通过 require() 来引入本地安装的模块。
     
    如果不安装全局包,则在pro目录下是不能执行对应的命令行命令,必须cd到.bin目录下,或者通过npm link命令或通过package.json的scripts字段设置:
    "scripts" : {
      "build" : "webpack ./entry.js bundle.js""deploy": "export NODE_ENV=production && `npm bin`/webpack --config webpack.config.production.js && npm start",
    }
    然后运行npm run build命令。
     
    require()查找文件的顺序
    当require一个文件模块时,先从当前执行文件平级的的node_modules目录中查找;然后查找上一级的node_modules目录;依次迭代,直到根目录下的node_modules目录。如果还没有查找到指定模块的话,就会去NODE_PATH注册的路径中查找。
    require绝对路径的文件,查找时不用去遍历每一个node_modules目录,其速度最快。
     
    为什么要全局安装和本地安装两次?
    本地安装可以让每个项目依赖独立的包,不受全局包的影响,保证不同版本的包之间的相互依赖,可以通过require()使用引入的模块。是npm的默认安装模式。
    全局安装并不依赖引入的模块。它会在'C:UsersadminAppDataRoaming pm'生成对应的cmd文件,保证在任何地方都可以通过命令行执行该程序,不用cd到项目目录执行。如全局安装gulp是为了在任何地方都可以执行gulp任务,本地安装gulp则是为了调用gulp插件的功能。
     
    二、npm常用命令
    1.安装模块
    npm install //安装package.json中定义的所有依赖的包
    npm install [<@scope>/]<name>@<version> //安装指定版本的包,如不指定版本,默认安装最新的包
    alias: npm i
    options:
    -S|--save //保存版本信息到package.json文件的dep字段中
    -D|--save-dev //保存版本信息到package.json文件的devDep字段中
    npm install --production  # 添加了production参数后将仅仅安装package.json中dependencies 里面的包,不会安装devDependencies 里的模块,否则get
    all dependencies & devDependencies installed。一个模块不能同时在两种环境中安装。
     
    2.卸载模块
    npm uninstall <pkg>
    aliases: remove, rm, r, un, unlink
    options:
    -S|--save //删除package.json中dev字段对应的信息
    -D|--save-dev //删除package.json中devDep字段对应的信息
     
    3.更新模块
    npm outdated [<pkg>] //列出所有过时的包
    npm update [-g] [<pkg>...] //更新指定包到最新版本;如果未指定,则更新所有包,包括全局和本地 a
    liases: up, upgrade
    options:同上
     
    4.其他命令
    npm config set registry https://registry.npm.taobao.org/ //切换镜像
    npm config get registry //查看镜像
    npm config get prefix //获取全局模块安装路径;
    where node //获取node所在路径;
    npm <command> -h //查看该命令的所有使用帮助信息;
    npm view package@2.3.1 [version|dependencies] //查看远程包内的package.json信息
    npm config ls –l //查看npm内置的配置参数
    npm install 或者 npm install –save-dev //自动将所在目录的package.json中的模块安装到node-modules文件夹下,不用一个一个安装模块。
    npm ls xxx [–depth=0] //查看本地安装的模块版本信息,只看当前目录,不遍历子目录。注意:子模块的devdependency依赖包不会被安装,只安装dep包。
     
    三、cnpm
    因为npm是从国外服务器下载,经常出现异常,可以使用淘宝团队开发的镜像cnpm,cnpm跟npm用法一样。
    安装命令:npm install cnpm -g --registry=https://registry.npm.taobao.org
     
    1.create-react-app安装模块慢,可以设置永久使用cnpm:
    $:npm config set registry https://registry.npm.taobao.org
    $: npm config set registry http://registry.npmjs.org   #官方地址
     
    2.使用nrm管理registry地址:
    1.安装nrm:npm install -g nrm
    2.注册registry地址:
      nrm add npm http://registry.npmjs.org
      nrm add cnpm https://registry.npm.taobao.org
    3.切换registry地址
      nrm use npm/cnmp
     
    3.依赖包版本管理 
    ~匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x的包,但是不包括1.3.0。 
    ^匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,但是不包括2.0.0。
     
     
     

  • 相关阅读:
    Beginning iOS 8 Programming with Swift-TableView
    the-swift-programming-language 学习笔记
    Sharepoint 查阅项字段和计算值字段的定义
    java
    【转载】大型网站架构系列:消息队列(二)
    【转载】大型网站架构系列:分布式消息队列(一)
    【转载】高并发的核心技术-幂等的实现方案
    win2003 64位系统下ODBC连接使用
    PL/SQL Developer连接本地Oracle 11g 64位数据库
    Repeater 创建复杂表头的表格
  • 原文地址:https://www.cnblogs.com/absoluteli/p/14124345.html
Copyright © 2020-2023  润新知