Gulp构建不会自动安装依赖项?

29

我使用gulp来构建我的JavaScript应用程序。在package.json文件中声明了一些依赖项,例如:

"dependencies": {
  "flux": "^2.0.1",
  "keymirror": "~0.1.0",
  "object-assign": "^1.0.0",
  "react": "^0.13.1",
  "dropzone": "^4.0.1",
  "lodash": "^3.6.0"
}

当我运行 gulp build 时,它总是提示我缺少某些依赖项,除非我手动运行 npm install lodash

是否有一种方法可以让 gulp 自动运行 npm install


5
我可以尝试翻译这句话,但可能需要绕路。你可以通过简单的npm install安装所有依赖项,它将只安装缺少的依赖项,所以最简单的方法是在你的Shell上键入npm install && gulp build,以确保在运行gulp之前先执行它。 - ddprrt
是的,这正是我现在正在做的 :) - Gelin Luo
如果您尚未运行npm install,那么在运行gulp之前,您如何在本地安装gulp(除非它是全局安装的,但我不认为这很常见)?对我来说,我可能会只使用npm install,然后使用postinstall脚本来运行gulp。 - alans
使用npm上的gulp-install包(参见下面@halogner的答案)。 - Doug Domeny
3个回答

43

6
  1. 你需要在根目录下拥有package.json文件。
  2. 然后,使用--saveDev(开发依赖)或--save(项目级依赖)参数运行npm install命令来安装所有依赖项。
  3. 完成以上步骤后,下一次只需运行npm install命令即可安装依赖项。

4

gulp-install 可以帮助你解决这个问题。前往 NPM(node 包管理器)并搜索 "gulp-install"。

这个 node 插件 gulp-install 可以自动为 npm、bower、tsd 和 pip 安装包/依赖。相关配置必须在 gulp 文件流中找到。

使用示例

在你的 gulpfile.js 中:

var install = require("gulp-install");

gulp.src(["./package.json", "./bower.json"])
  .pipe(install());

这回答了一个关于从gulp运行npm install的问题,而不是在使用npm安装时更新package.json文件的问题。 - Doug Domeny
这个安装程序是否也会安装开发依赖项? - Shardul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接