2014-12-05 13 views
5

我想在两个不同的项目中重用我的gulp任务。我将我的gulp任务提取到父目录中,并试图要求他们进入。这是我的目录结构。如何为多个nodejs项目重用gulp任务

parent/ 
    gulp-tasks/ 
     default.js 
    project1/ 
     node_modules/ 
     gulpfile.js 
     js/ 
    project2/ 
     node_modules/ 
     gulpfile.js 
     js/ 

这是所有我在我gulpfile.js在每个项目

var requireDir = require('require-dir'); 
requireDir('../gulptasks'); 

这里是我的default.js样子:

var gulp = require('gulp'); 

gulp.task('default', function() { 
    //run code here 
}) 

当我尝试运行gulp default,我得到gulp未定义。我知道父目录中没有node_modules,但是有没有办法指向每个子项目中的node_modules?我不是特别想要一个关于吞噬的答案,但是如何构建我的项目以使我的代码可重用?

+0

您是否在全球安装'gulp'? – Ben 2014-12-07 15:50:52

回答

0
  1. 为什么你需要这种结构?你能把它们分解成回购吗?这样你就可以将它们安装为依赖关系。
  2. 您可以在parent根目录下拥有package.json。然后,您将可以访问共享的node_modules文件夹。
+0

我的核心内容仍然在不断变化,看起来像是一个噩梦,有一个构建过程,你必须等待核心内容被推送到注册表,然后把它拉下来构建子项目。 – jhamm 2014-12-05 20:31:22

+0

你可以直接安装git repos。 'npm install git + ssh:// --save' – lwang135 2014-12-05 21:04:50

+0

你也可以使用[npm link](https://docs.npmjs.com/cli/link)。 – pgreen2 2014-12-16 21:35:04