当前位置: 首页 > 知识库问答 >
问题:

为什么我们需要在全球和本地安装gulp?

嵇出野
2023-03-14

2本关于gulp的手册说,我需要首先在全局范围内安装gulp(带-g标志),然后在本地再安装一次。为什么我需要这个?

共有3个答案

帅煌
2023-03-14

您可以将全局安装的gulp本地链接到

npm link gulp
哈烨熠
2023-03-14

太长,读不下去了原因如下:

这之所以有效,是因为gulp尝试运行gulpfile。js使用本地安装的gulp版本,请参见此处。因此,需要在全球和本地安装gulp。

基本上,当您在本地安装gulp时,脚本不在路径中,因此您不能仅键入gulp并期望shell找到该命令。通过全局安装它,gulp脚本进入您的路径,因为全局节点/bin/目录很可能位于您的路径上。

不过,为了尊重本地依赖关系,gulp将使用本地安装的版本来运行gulpfile。js

周和歌
2023-03-14

在全局安装工具时,用户可以在任何地方(包括节点项目之外)将其用作命令行实用程序。节点项目的全局安装不好,因为它们使部署更加困难。

npm5.2捆绑的npx实用程序解决了这个问题。使用它,您可以调用本地安装的实用程序,如全局安装的实用程序(但必须以npx开头)。例如,如果要调用本地安装的eslint,可以执行以下操作:

npx eslint .

在包的脚本字段中使用时。json,npm搜索node\u模块以及全局安装的模块,因此本地安装就足够了。

因此,如果您满意(在您的package.json中):

"devDependencies": {
    "gulp": "3.5.2"
}
"scripts": {
    "test": "gulp test"
}

等,并运行npm run test,那么您根本不需要全局安装。

这两种方法都有助于让人们了解您的项目,因为不需要sudo。这也意味着当版本在包中碰撞时,gulp将被更新。json,因此每个人在开发项目时都将使用相同版本的gulp。

在全球使用的时候,古普似乎有一些不寻常的行为。当用作全局安装时,gup会查找本地安装的gup以将控制传递给它。因此,一个全局安装需要一个本地安装。上面的答案仍然成立。本地安装总是优于全局安装。

 类似资料:
  • 问题内容: 我从Angular 2.0开始了一个教程,设置工作区的第一步是安装Node.js和NPM。 为什么我们要为Angular 2.0安装Node.js? 我不记得要对有角度的1.X这样做。 问题答案: 从技术上讲 ,不需要Angular2即可使用Node.js和NPM。它确实使事情变得轻松。这是我推测此选择背后的主要原因: CLI :一段时间以来,构建和开发新的Angular应用程序的实际

  • 问题内容: Angular应用使用属性而不是事件。 为什么是这样? 问题答案: ng-click包含一个角度表达式。Angular表达式是在Angular 范围的上下文中求值的,该范围绑定到具有ng- click属性的元素或该元素的祖先。 Angular表达式语言不包含流控制语句,也不能声明变量或定义函数。这些限制意味着模板只能访问由控制器或指令提供的变量和运行功能。

  • 以我的拙见,关于“什么是单子”这个著名问题的答案,尤其是投票最多的答案,试图解释什么是单子,而没有明确解释为什么单子是真正必要的。它们能被解释为一个问题的解决方案吗?

  • 为什么我们需要字典? 计算机最适合使用数字,而人类最适合使用姓名。我们创建了DNS以便记住主机名而不是IP地址。字典以相同的方式使用,因此我们可以记住AVP名称而不是类型编号。当FreeRADIUS解析请求或生成响应时,会查阅字典。 但是,字典与DNS不同,因为RADIUS客户端不知道FreeRADIUS使用的这些“友好”名称。永远不会在RADIUS客户端和RADIUS服务器之间交换AVP名称。

  • 问题内容: 我将稍微解释一下我的脚本,以便您可以理解我的问题。 基本上我做了一个脚本来检查SOCKS5是还是。 当我在上面测试我的脚本时,它运行良好,但是当我在Windows上对其进行测试时,直到我将以下行添加到: 谁能向我解释为什么我在Windows中需要此行,而在Linux服务器上却不需要? 问题答案: SSL证书上的此cURL手册页介绍了连接到SSL / TLS受保护主机时 证书验证 的过程

  • 问题内容: 我开始使用RxJS,但我不明白为什么在此示例中我们需要使用类似or 的函数;数组的数组在哪里? 如果有人可以直观地解释正在发生的事情,那将非常有帮助。 问题答案: 当您有一个Observable的结果是更多Observable时,可以使用flatMap。 如果您有一个由另一个可观察对象产生的可观察对象,则您不能直接过滤,缩小或映射它,因为您有一个可观察对象而不是数据。如果您生成一个可观