`

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

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


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

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

分享到:
评论

相关推荐

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

    npm install 本地安装与全局安装的区别 npm install 命令是 Node.js 生态系统中最常用的包管理工具,用于安装、管理项目依赖的软件包。npm install 命令可以将软件包安装到本地或全局目录中,本地安装和全局安装的...

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

    npm的包安装分为本地安装(local)、全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已,比如: 代码如下:npm install grunt # 本地安装npm install -g grunt-cli # 全局安装下面分别解释。1. npm ...

    npm install -g和--save有什么区别?

    1. **npm install -g(全局安装)** 全局安装通常用于安装那些跨项目使用的工具,比如Gulp、Webpack或TypeScript编译器。使用`-g`标志,npm会在系统的全局环境中安装包,这样在任何项目中都可以访问到这个包。全局...

    【npm】npm 全局安装 和 局部(本地)安装

    本地安装:npm命令默认情况下会将包安装到当前目录下,避免了不同程序依赖不同版本包的冲突;减少了包开发者API的兼容性的问题;缺点是会出现一个包安装多次的情况。 全局安装:提高程序重复利用,避免一个程序多个...

    npm install 报错解决方法

    在使用Node.js开发环境时,`npm install`是开发者经常执行的一个命令,它用于安装项目中定义的依赖包。然而,这个过程有时会出现各种错误,让开发者感到困扰。本篇文章将详细探讨`npm install`可能出现的错误以及...

    node.js环境配置与npm install报错解决

    2. **npm全局安装路径修改**:修改npm的全局安装路径之后,在非管理员模式下执行npm install可能会报错。因此,需要将node_global和node_cache文件夹的路径加入到环境变量中。 3. **权限设置**:修改node_global...

    electron demo项目npm install安装失败的解决方法

    2. **依赖冲突**:项目中不同模块之间的依赖版本不兼容,或者与本地已安装的`npm`包冲突。 3. **权限问题**:如果没有足够的权限去写入项目目录,`npm install`也会失败。 4. **代理设置**:如果网络需要通过代理...

    Node和npm安装说明.docx

    1. 安装express模块:使用npm install命令安装express模块。 2. 测试express模块:使用express命令测试模块是否安装成功。 七、结语 通过本文的指导,您已经成功安装了Node.js和npm,并进行了环境配置。现在,您...

    npm install报错 最全解决方案

    - 使用`sudo`运行`npm install`,但这可能导致全局权限问题,不推荐长期使用。 - 更改npm的默认缓存目录到一个无权限限制的位置,如`~/.npm-global`。 3. **网络问题**: - 设置npm的registry为国内镜像,如淘宝...

    npm的配置有三步

    1. **下载与安装**: - 下载LTS版本(长期支持版),这是推荐给大多数用户的版本。 - 双击下载好的安装包开始安装过程。 - 在安装向导中选择自定义安装路径(例如:`D:\nodejs`)。 - 安装完成后,在命令提示符...

    npm-safe-install:以安全方式执行npm安装的节点cli,这样在安装过程中不会删除本地链接的模块

    通过运行以下命令全局安装npm-safe-install : npm install -g npm-safe-install 用法 您可以使用以下任何命令来运行模块: npm-safe-install nsi 当您运行该实用程序时,它将搜索链接的项目并重建任何断开的...

    详解离线安装npm包的几种方法

    `npm link`原本是为了开发人员在本地项目和全局环境之间建立快捷方式,以便于实时测试和调试。具体步骤如下: 1. 在有网络连接的环境中,克隆或下载你需要的npm包源码,例如`pm2`: ``` $ git clone ...

    【JavaScript源代码】node.js安装及HbuilderX配置详解.docx

    4. **vue-cli安装与使用**:vue-cli是用于创建Vue项目的脚手架工具,通过`npm install vue-cli -g`全局安装。初始化项目时,可以选择是否安装vue-router,其他默认选择No。之后,运行`npm install`安装项目依赖,`...

    npm-install-missing:一个NPM模块,用于重新安装缺少的依赖项

    在项目上第二次运行npm install时,npm将检查模块的第一级以确保已安装它们,但不会遍历依赖性树以确保已安装所有子模块依赖性。 您可以运行npm outdated来检查是否缺少模块,但是npm不会为您安装它们。 该模块...

    vue的npm模块安装使用方法

    在进行Vue项目开发之前,首先需要配置npm的全局安装路径和缓存路径,确保项目的稳定性和可维护性。具体命令如下: ```bash npm config set prefix "D:\nodejs\node_global" npm config set cache "D:\nodejs\node_...

    node安装npm

    1. 使用 cmd 命令行输入 npm install express -g,安装 express 模块。 2. 等待安装完成,出现版本提示和安装路径。 五、配置环境变量 1. 右键点击“我的电脑”,选择“属性”-“高级系统设置”-“高级”-“环境...

    解决修复npm安装全局模块权限的问题

    "解决修复npm安装全局模块权限的问题" npm(Node Package Manager)是 Node.js 的包管理器,用于管理 Node.js 应用程序所需的依赖项。然而,在安装全局模块时,可能会遇到权限问题,导致安装失败。今天,我们将分享...

    npm安装文件

    `npm install`命令有两种主要模式:全局安装(global)和本地安装(local)。全局安装通常用于安装命令行工具,这些工具可以在任何项目中使用。而本地安装则是针对项目特定的依赖,它们被安装到项目的`node_modules`...

    MEAN NODE NPM 安装

    - 使用命令`npm install -g meanio`全局安装MEAN.io。 - 使用命令`mean install mean-admin`安装MEAN管理员工具。 通过以上步骤,您可以成功地在本地环境中搭建起基于Node.js和NPM的MEAN栈开发环境。这将极大地...

Global site tag (gtag.js) - Google Analytics