【问题标题】:How to add Gulp to my project?如何将 Gulp 添加到我的项目中?
【发布时间】:2016-09-27 23:19:57
【问题描述】:

我使用的是 Windows 7、Visual Studio 2013。我正在尝试在我客户的项目中设置 Gulp。

我已将这些 Nuget 添加到项目中: Node.js 版本 0.12.0 Npm.js 版本 1.3.15.10。

由于某种原因,我不知道,当默认项目是客户端时,在 nuget 包管理器中运行 npm init 时,它没有创建 package.json 文件,没有关于该文件的问题,并且命令永远不会退出。

这是否与我只通过 Visual Studio 项目工作的事实有关?后来我通过安装程序下载了 Node.js,因为我发现我的电脑上没有 node.js 的版本。

我还需要在 Visual Studio 之外安装 npm 吗?我无法访问那里的网络,我应该获得一个 .msi 文件吗?

关于 Gulp nuget 包,我在其他网站上读到应该使用以下命令通过 npm 安装 Gulp:npm install gulp -g -save dev。我无法运行该命令,因为我没有网络连接,因此如何仅使用 gulp nuget 包来执行此操作?

请帮助我了解运行 node.js、npm 和 Gulp 需要哪些步骤

【问题讨论】:

  • 你能分享一下终端上的输出吗?您应该运行npm config set loglevel info,然后再次运行安装命令以查看输出。
  • 不确定我是否正确设置了日志级别,因为消息相同,但我发布了它
  • 也许这可能会更有帮助:CategoryInfo: NotSpecified: (npm info 如果它以 ok:String 结尾则有效) [], RemoteException + FullyQualifiedErrorId : NativeCommandError
  • 这没有回答您的问题,但认真考虑使用带有 Linux 的 VM 或旧的 Mac/OS/X 机器进行开发。Windows 和 Visual Studio 不会走得太远.我知道现在看起来很麻烦,但相信我,你的问题不会就此止步。
  • 我们整个团队都是基于windows的..不能突然决定改变它。这对我们所有人来说都很舒服。为什么改变它会更好?

标签: node.js npm gulp npm-init


【解决方案1】:

我不知道npm init 是怎么回事,但我的第一个建议是尝试更新版本的 npm——当前版本是 3.9.6;我怀疑如果您使用更新的版本,您会过得更好。通常,npm 和 node 旨在全局安装,而不是单个包;我对nuget不太了解,但这也可能会造成麻烦(我认为如果你在本地安装npm,你应该可以很好地使用它,不过,就像./node_modules/.bin/npm init --yes,这就是为什么我把它列在第二位)。您可以让 msi 安装 here 的 lts 版本,尽管我猜您没有网络访问权限。如果这不起作用,您可以相当容易地手动创建一个package.json,它会和自动生成的一样好——herearesomereasonableexamples .您也可以考虑提交an issue with npm

至于如果您无法运行npm i -g,如何安装 gulp,这比您想象的要容易解决。本地安装的 gulp 和本地安装的 gulp 没有区别,它们只是在访问时使用了两个不同的脚本。当你require("gulp") 时,你会得到main 中列出的脚本,当你在命令行中运行gulp 时,你会得到bin 中列出的脚本,并且两者都包含在本地和全局安装中(您可以查看gulp's package.json 了解更多详情)。所以,对于全局安装来说,这意味着你需要做的就是以某种方式在你的 PATH 上获取 gulp 的 bin 文件(node_modules/gulp/bin/gulp.jsnode_modules/.bin/gulp,它指向 node_modules/gulp/bin/gulp.js)(你不能只是复制脚本到您路径上的文件夹,但是,它也需要 node_modules 中的文件夹中的所有其他内容才能工作),或者您可以直接从本地安装调用 bin 脚本(我是 linux 用户,所以我会像这样运行compile 任务:./node_modules/.bin/gulp compile -- 我不知道如何在 Windows 上运行,所以我希望这能让你足够接近)。

【讨论】:

  • 我什至可以运行任何 npm 命令吗?如果我没有网络连接,是否需要安装它?目前我已经通过 .msi 文件安装了 node.js(连同 npm)。我也已经在我的项目中下载了它,并创建了一个带有 node.cmd 的 .bin 文件夹。它是干什么用的?
【解决方案2】:

该命令似乎无限运行,因为您没有提供任何响应。 npm init 命令是交互式的,只有在您为每个输入请求提供响应后才会继续。

来自documentation

这会问你一堆问题,然后给你写一个package.json。

如果您想使用package.json 的默认配置,您可以运行npm init -y

如果您使用 -f、--force、-y 或 --yes 调用它,它将仅使用默认值,不会提示您输入任何选项。

【讨论】:

  • Running npm init -f , npm init -y 导致相同的消息.. 它正在运行,但没有任何反应
  • package.json 文件是否已创建?
  • 不,它不是创建的
  • 难道我没有使用最新版本的 Node.js?或者也许是我忘记配置的东西?我应该只在我的客户端项目上安装 Node.js 和 npm?
  • 这不是问题。不幸的是,我没有足够的信息。 npm init -y 应该创建 package.json 文件。问题中的消息表明 npm init 可以正常工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
相关资源
最近更新 更多