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包。全局命令跟本地的包名字一样,挺有迷惑性的。
相关推荐
npm install 本地安装与全局安装的区别.docx
npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如: 代码如下:npm install grunt # 本地安装npm install -g grunt-cli # 全局安装下面分别解释。1. npm ...
本地安装:npm命令默认情况下会将包安装到当前目录下,避免了不同程序依赖不同版本包的冲突;减少了包开发者API的兼容性的问题;缺点是会出现一个包安装多次的情况。 全局安装:提高程序重复利用,避免一个程序多个...
在项目上第二次运行npm install时,npm将检查模块的第一级以确保已安装它们,但不会遍历依赖性树以确保已安装所有子模块依赖性。 您可以运行npm outdated来检查是否缺少模块,但是npm不会为您安装它们。 该模块...
最近发现了一个问题,运行 npm install 命令安装依赖包,在 Mac 上的 Vagrant 装的虚拟机上没问题,在阿里云 CentOS 上也没问题,但是在 Windows 环境同样是 Vagrant 装的环境相同的虚拟机上就是不成功,报错如下: ...
#用cnpm 全局安装 hexo客户端 cnpm install -g hexo-cli #查看版本 hexo -v # 新建一个文件夹 进入目录 hexo init #初始化一个博客 git bash WARN Failed to install dependencies. Please run ‘npm install’ ...
【npm install -g xxx】利用npm安装全局模块xxx; 本地安装时将模块写入package.json中: 【npm install xxx】安装但不写入package.json; 【npm install xxx –save】 安装并写入package.json的”dependencies”中...
window 命令行中提示我全局安装 node-gyp ,有些提示好像是本地找不到python, 于是我按照提示安装node-gyp node-gyp是一个用Node.js编写的跨平台命令行工具,用于编译Node.js的本地插件模块。 node-gyp node-gyp官方...
环境要求 ...-g 表示安装为全局 安装 vue-cli 安装 vue 脚手架项目初始化工具 vue-cli npm install vue-cli -g 淘宝镜像 npm使用的国外中央仓库,下载速度较慢,有的时候还会有部分文件被墙掉。 npm
上一篇文章《Nodejs中 npm常用命令详解》主要是整理了最常使用的npm命令及相关介绍,其中有提到全局安装(npm install gulp -g)和本地安装(npm install gulp),下图来自Gulp中文网入门指南,可以看出全局安装后gulp后...
全局安装 vue-cli 先删除低版本npm uninstall -g vue-cli $ npm install -g @vue/cli 全局安装 webpack $ npm install webpack -g 全局安装 yarn $ npm install yarn -g 安装项目依赖包,建议npm安装, cnpm可能会...
之后运行npm install命令时,不会自动安装X 二、npm install xxx -g 安装xxx到全局,不会在项目node_modules目录中保存模块包。 不会将模块依赖写入devDependencies或dependencies 节点。 之后运行npm install...
前端行家插件 该插件在本地为您的项目下载/安装Node和NPM,运行npm install ,然后运行 , , , , 或任意组合。 它应该可以在Windows,OS X和Linux上运行。 如果您在获取节点软件包时比更喜欢 ,则此插件还可以...
通过运行以下命令全局安装npm-safe-install : npm install -g npm-safe-install 用法 您可以使用以下任何命令来运行模块: npm-safe-install nsi 当您运行该实用程序时,它将搜索链接的项目并重建任何断开的...
node下的npm或者国内镜像安装路径乱,不好管理,于是做了此教程。 下载node-v4.2.4.rar减压到相应的目录,本人是减压到”D:\Program Files”这个目录下 环境变量的配置: 1.在path变量中加入————-注意替换...
全局安装gulp npm install -g gulp gulpally安装gulp后,然后安装在项目中 作为开发依赖项,通过命令npm install gulp --save-dev 通过命令npm install gulp-sass --save-dev安装gulp-sass模块npm install gulp-...
$ sudo npm install sails -g * 安装全局grunt (sails) $ sudo npm install grunt -g 运行: * 挂起服务 默认监听1337端口 $ sails lift 生成文档: $ npm install apidoc -g $ npm run api 创建sails: $ ...
# 全局安装 vue-cli $ npm install -g vue-cli $ cd my-project $ npm install $ npm run dev 上面这些就是安装好vue项目,最主要的就是下面的步骤 步骤三:下载好swiper相关的js和css,js放在static目录下,css...
全局模块 npm用于全局安装的npm模块的目录。 请考虑关注该项目的作者 ,并考虑为该项目以显示您的 :red_heart: 和支持。安装使用安装: $ npm install --save global-modules用法const globalModules = require ( '...