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 本地安装与全局安装的区别 npm install 命令是 Node.js 生态系统中最常用的包管理工具,用于安装、管理项目依赖的软件包。npm install 命令可以将软件包安装到本地或全局目录中,本地安装和全局安装的...
npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如: 代码如下:npm install grunt # 本地安装npm install -g grunt-cli # 全局安装下面分别解释。1. npm ...
1. **npm install -g(全局安装)** 全局安装通常用于安装那些跨项目使用的工具,比如Gulp、Webpack或TypeScript编译器。使用`-g`标志,npm会在系统的全局环境中安装包,这样在任何项目中都可以访问到这个包。全局...
本地安装:npm命令默认情况下会将包安装到当前目录下,避免了不同程序依赖不同版本包的冲突;减少了包开发者API的兼容性的问题;缺点是会出现一个包安装多次的情况。 全局安装:提高程序重复利用,避免一个程序多个...
在使用Node.js开发环境时,`npm install`是开发者经常执行的一个命令,它用于安装项目中定义的依赖包。然而,这个过程有时会出现各种错误,让开发者感到困扰。本篇文章将详细探讨`npm install`可能出现的错误以及...
2. **npm全局安装路径修改**:修改npm的全局安装路径之后,在非管理员模式下执行npm install可能会报错。因此,需要将node_global和node_cache文件夹的路径加入到环境变量中。 3. **权限设置**:修改node_global...
2. **依赖冲突**:项目中不同模块之间的依赖版本不兼容,或者与本地已安装的`npm`包冲突。 3. **权限问题**:如果没有足够的权限去写入项目目录,`npm install`也会失败。 4. **代理设置**:如果网络需要通过代理...
1. 安装express模块:使用npm install命令安装express模块。 2. 测试express模块:使用express命令测试模块是否安装成功。 七、结语 通过本文的指导,您已经成功安装了Node.js和npm,并进行了环境配置。现在,您...
- 使用`sudo`运行`npm install`,但这可能导致全局权限问题,不推荐长期使用。 - 更改npm的默认缓存目录到一个无权限限制的位置,如`~/.npm-global`。 3. **网络问题**: - 设置npm的registry为国内镜像,如淘宝...
1. **下载与安装**: - 下载LTS版本(长期支持版),这是推荐给大多数用户的版本。 - 双击下载好的安装包开始安装过程。 - 在安装向导中选择自定义安装路径(例如:`D:\nodejs`)。 - 安装完成后,在命令提示符...
通过运行以下命令全局安装npm-safe-install : npm install -g npm-safe-install 用法 您可以使用以下任何命令来运行模块: npm-safe-install nsi 当您运行该实用程序时,它将搜索链接的项目并重建任何断开的...
`npm link`原本是为了开发人员在本地项目和全局环境之间建立快捷方式,以便于实时测试和调试。具体步骤如下: 1. 在有网络连接的环境中,克隆或下载你需要的npm包源码,例如`pm2`: ``` $ git clone ...
4. **vue-cli安装与使用**:vue-cli是用于创建Vue项目的脚手架工具,通过`npm install vue-cli -g`全局安装。初始化项目时,可以选择是否安装vue-router,其他默认选择No。之后,运行`npm install`安装项目依赖,`...
在项目上第二次运行npm install时,npm将检查模块的第一级以确保已安装它们,但不会遍历依赖性树以确保已安装所有子模块依赖性。 您可以运行npm outdated来检查是否缺少模块,但是npm不会为您安装它们。 该模块...
在进行Vue项目开发之前,首先需要配置npm的全局安装路径和缓存路径,确保项目的稳定性和可维护性。具体命令如下: ```bash npm config set prefix "D:\nodejs\node_global" npm config set cache "D:\nodejs\node_...
1. 使用 cmd 命令行输入 npm install express -g,安装 express 模块。 2. 等待安装完成,出现版本提示和安装路径。 五、配置环境变量 1. 右键点击“我的电脑”,选择“属性”-“高级系统设置”-“高级”-“环境...
"解决修复npm安装全局模块权限的问题" npm(Node Package Manager)是 Node.js 的包管理器,用于管理 Node.js 应用程序所需的依赖项。然而,在安装全局模块时,可能会遇到权限问题,导致安装失败。今天,我们将分享...
`npm install`命令有两种主要模式:全局安装(global)和本地安装(local)。全局安装通常用于安装命令行工具,这些工具可以在任何项目中使用。而本地安装则是针对项目特定的依赖,它们被安装到项目的`node_modules`...
- 使用命令`npm install -g meanio`全局安装MEAN.io。 - 使用命令`mean install mean-admin`安装MEAN管理员工具。 通过以上步骤,您可以成功地在本地环境中搭建起基于Node.js和NPM的MEAN栈开发环境。这将极大地...