首页 > gulp多项目时,如何使用全局中的gulp功能模块,避免每个项目都需要重新下载依赖模块

gulp多项目时,如何使用全局中的gulp功能模块,避免每个项目都需要重新下载依赖模块

RT
目前gulp只用在本地项目,而每有新项目时,都需要npm install gulp --save-dev到当前新项目目录,并且把需要的concat,jshint,css-sprite,uglify,rename,都下载到当前心项目目录node_module中。这样很麻烦.
我在网上看到,可以配置环境变量来避免,如下:

    export PATH=$PATH: # 将 /usr/bin 追加到 PATH 变量中
    export NODE_PATH="/usr/lib/node_modules;/usr/local/lib/node_modules" #指定 NODE_PATH 变量

因为我使用的是zsh, 配置到了.zshrc中。但是将新项目中的node_module删除后,运行gulp default时,就会报错:找不到全局中的gulp以及所依赖的模块。

    [14:50:57] Local gulp not found in ~/Documents/MacToWin/webapp/licai
    [14:50:57] Try running: npm install gulp

stackover上也搜了不少答案,推荐的方式还是每开新项目,然后重新下载。这下就迷茫了。如此重复的情况,有什么办法可以避免吗?各位。


不好意思各位,是我NODE_PATH配置的问题。已经好了。


在根目录安装需要的模块,每个项目下放个gulpfile.js。不直接调用gulp,改用node xx.js的形式,xx.js内容如下:

javascriptvar cp = require('child_process');
var path = require('path');
var fs = require('fs');

var paths = module.paths;

for (var i = 0, len = paths.length; i < len; i++) {
    var gulpDir = path.join(dir[i], './gulp/bin/gulp.js');
    var isExist = fs.existsSync(gulpDir);
    if (isExist) {
        var gulpFile = path.join(__dirname,'./gulpfile.js');
        cp.fork(gulpDir,['--gulpfile=' + gulpFile]);
        break;
    }
}


学习了。
全局的gulp貌似不能在项目中使用的。建议还是在项目目录下单独安装本地gulp。


全局安装 gulp 是为了可以运行命令行, 而项目中得 gulp 是为了项目脚本依赖。 一般命令行工具都会全局安装,项目中用到的类库还是建议跟着项目走,这样每个项目可以使用自己的空间存放依赖列表,而不会造成全局污染和版本冲突。别人拿到你项目的时候,直接 npm install 就可以安装所有依赖,并立刻执行了。

【热门文章】
【热门文章】