npm install 本地安装与全局安装的区别

   npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如

  npm install grunt # 本地安装

  npm install -g grunt-cli # 全局安装

  这两种安装方式有什么区别呢?从npm官方文档的说明来看,主要区别在于(后面通过具体的例子来说明):

  本地安装

  1. 将安装包放在 ./node_modules 下(运行npm时所在的目录)

  2. 可以通过 require() 来引入本地安装的包

  全局安装

  1. 将安装包放在 /usr/local 下

  2. 可以直接在命令行里使用

  本地安装

  1、将安装包放在 ./node_modules 下(运行npm时所在的目录)

  比如运行下面命令

  npm install grunt --save-dev

  那么,就会在当前目录下发现一个node_modules目录,进去后能够看到grunt这个包

  casperchenMacBookPro:testUsemin casperchen$ ll

  total 200

  drwxr-xr-x 16 casperchen staff 544B 12 14 23:17 node_modules

  进入node_modules

  casperchenMacBookPro:node_modules casperchen$ ll

  total 0

  drwxr-xr-x 16 casperchen staff 544B 12 5 00:49 grunt

  2、可以通过 require() 来引入本地安装的包

  直接来个例子,我们在项目根目录下创建test.js,里面的内容很简单

  var grunt = require('grunt');grunt.log.writeln('hello grunt');

  然后在控制台运行test.js

  node test.js

  然后就会看到如下输出

  casperchenMacBookPro:testUsemin casperchen$ node test.js

  hello grunt

  全局安装

  1、将安装包放在 /usr/local 下

  运行如下命令

  npm install -g grunt-cli

  然后进入/usr/local/bin目录,就会发现grunt-cli已经被放置在下面了

  casperchenMacBookPro:bin casperchen$ pwd

  /usr/local/bin

  casperchenMacBookPro:bin casperchen$ ll grunt

  lrwxr-xr-x 1 root admin 39B 8 18 21:43 grunt -> ../lib/node_modules/grunt-cli/bin/grunt

  可见,全局模块的真实安装路径在/usr/local/lib/node_modules/下,/usr/local/bin下的可执行文件只是软链接而已

  2、可以直接在命令行里使用

  实现细节在上面其实就讲到了,通过在`/usr/local/bin下创建软链接的方式实现。这里不赘述

  更直观的例子

  下面就直接看下,当我们在项目目录下运行grunt task(task为具体的grunt任务名,自行替换)时,发生了什么事情。这里要借助node-inspector。

  首先,没接触过node-inspector的童鞋可以参考之前的文章了解下

  运行如下命令开启调试

  node-inspector &

  见到如下输出

  casperchenMacBookPro:tmp casperchen$ node-inspector &

  [1] 14390

  casperchenMacBookPro:tmp casperchen$ Node Inspector v0.6.1

  info - socket.io started

  Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

  接着,在当前任务下运行grunt任务

  ^CcasperchenMacBookPro:testUsemin casperchen$ node --debug-brk $(which grunt) dev

  debugger listening on port 5858

  接着,打开chrome浏览器,输入网址http://127.0.0.1:8080/debug?port=5858,就会自动进入断点调试状态。从一旁显示的tips可以看到,全局命令grunt其实就是/usr/local/lib/node_modules/grunt-cli/bin/grunt


  按下F8接着往下跑,就会进如Gruntfile.js,此时的grunt,是本地安装的一个node包。全局命令跟本地的包名字一样,挺有迷惑性的。

时间: 2024-11-18 05:11:29

npm install 本地安装与全局安装的区别的相关文章

npm install —— 从一个简单例子,看本地安装与全局安装的区别

npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如 npm install grunt # 本地安装 npm install -g grunt-cli # 全局安装 这两种安装方式有什么区别呢?从npm官方文档的说明来看,主要区别在于(后面通过具体的例子来说明):本地安装 1. 将安装包放在 ./node_modules 下(运行npm时所在的目录) 2. 可以通过 require() 来引入本地安装的包 全局安装 1. 将安装

Nodejs全局安装和本地安装的不同之处_node.js

上一篇文章<Nodejs中 npm常用命令详解>主要是整理了最常使用的npm命令及相关介绍,其中有提到全局安装(npm install gulp -g)和本地安装(npm install gulp),下图来自Gulp中文网入门指南,可以看出全局安装后gulp后还要进行本地安装,一开始我疑惑了?为什么全局安装的gulp么,还要进行本地安装,难道不能在项目中直接调用本地安装的包? 带着疑惑,在google找了相关文档,杂七杂八凑合起来才有了点眉目,让我们一起解开nodejs全局安装和本地安装的一些

nodejs npm install全局安装和本地安装的区别_node.js

npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如: 复制代码 代码如下: npm install grunt # 本地安装npm install -g grunt-cli # 全局安装 下面分别解释. 1. npm install xxx -g 时, 模块将被下载安装到[全局目录]中. [全局目录]通过 npm config set prefix "目录路径" 来设置. 通过 npm config get prefi

npm查看全局安装过的包

在使用node的时候,用npm安装了很多软件,过一段时间没有使用就会忘记,怎么查看自己全局安装过的包,用命令 npm list -g --depth 0 在百度里搜不到结果的,我在google里老外的文章里看到的上面的命令,写篇文章记录一下 命令运行的截图 -g:全局的安装包 list:已安装的node包 –depth 0:这个参数我就不清楚了,可能是深度0,搜了一下没有找到解释

express全局安装出错的问题

问题描述 express全局安装出错的问题 我的Node.js安装在d:/node_js文件夹里面,然后c:/user/appdata/roaming文件夹自动生成了npm文件夹,在命令行里用-g执行全局安装的命令的,express generator也安装完成了,在c盘那个npm文件夹的node_module文件夹都有相关的文件夹(expressexpress-generator),安装完nodeexpress之后cmd执行-v,能显示版本,也没有报错,之前用eclipse安装了相关插件之后,

Windows系统下nodejs、npm、express的下载和安装教程详解_win服务器

1. node.js下载 首先进入http://nodejs.org/dist/,这里面的版本呢,几乎每个月都出几个新的,建议大家下载最新版本,看看自己的电脑是多少位的,别下错了. 下载完解压到你想放的位置就好了,解压后你会发现里面有node.exe.我解压到了D:\software_install文件夹. 接下来去命令行,即点击电脑左下角的开始-->运行-->cmd. 进入node.exe所在的目录,输入node -v,查看你的node版本.我的路径如下图所示: 如果你获得以上输出结果,说明

关于yum网络版仓库(本地yum仓库的安装配置,如果没网了,做一个局域网内的yum仓库)

2017-11-13 22:49:48 1:两种方式:   a.每一台机器都配一个本地文件系统上的yum仓库 file:///packege/path/ b.在局域网内部配置一台节点(server-base)的本地文件系统yum仓库,然后将其发布到web服务器中,其他节点就可以通过http://server-base/pagekege/path/ 2:现在使用b方式进行实验一下(如果在一台机器安装好,其他机器可以直接访问了:): 无论哪种配置,都需要先将光盘挂在到本地文件目录中: mount -

install pygtk-CentOS 6.4怎样安装pygtk?

问题描述 CentOS 6.4怎样安装pygtk? 本人系统 Centos6.4 自带 python2.6.6版本 现在升级为python2.7.3 但相应的pygtk不知道怎样安装 有太多的依赖包了,各种报错. 本来 想通过安装pip,通过命令pip install pygtk ,报错只能安装在windows上,各种无奈,哪位大神帮帮忙啊,本人不胜感激! 解决方案 这个链接可以解决问题: Use python 2.7 for some apps, while keeping python 2.

把程序集安装到全局程序集缓存中的步骤_实用技巧

步骤: 1.先创建类库项目,完成编码: 2.对类库项目生成强命名,生成密钥文件:(该名称是加密的哈希密钥或签名.这种强名称可确保正确的组件版本控制.这有助于防止具有相同名称的组件相互冲突或被消耗应用程序误用) 使用.net Framework 开发包中bin目录下的SN工具生成加密密钥对,例如:在D盘建立文件夹:GACkey,然后在命令行中执行:sn -k "D:\GACkey\GACkey.snk" ,则在D:\GACkey\GACkey.snk就会生成密钥文件: 3.关联类库文件和