gulp 如何管理多项目? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐关注
Meteor
JSLint - a Javascript code quality tool
jsFiddle
D3.js
WebStorm
推荐书目
Javascript 权威指南第 5 版
Closure: The Definitive Guide
jeffjade
V2EX    Javascript

gulp 如何管理多项目?

  •  
  •   jeffjade 2015 年 11 月 9 日 5564 次点击
    这是一个创建于 3747 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题:gulp 如何管理多项目?

    一般采用 gulp ,需将依赖的node_modules(插件集) down 于本地;而我们团队所做的项目多而且小,彼此间又比较独立。如果每个小项目下都对应一个node_modules,很是有些不妥。目前在尝试期: 是把node_modules以及gulpfile.js放在了众小项目之外,每次需要对某个小项目更改,改动gulpfile.js中路径配置,很是不够便捷。

    探究:有尝试些许办法,比如采用npm link,将需要的插件集合全局下载,让单独小项目 link 于全局插件。但是用 gulp-watch 在 win 下出现如下问题(mac 下还未尝试):

    [10:43:25] 'watch' errored after 7.4 s
    [10:43:25] Error: EPERM: operation not permitted, scandir 'E:\$RECYCLE.BIN\S-1-5-21-422716981-4093441979-2207027076-1001'
    at Error (native)
    at Object.fs.readdirSync (fs.js:813:18)
    at Glob._readdir (E:\1021_gulp_test\ddzmod\ddztemplate\node_modules\gulp\node_modules\vinyl-fs\node_modules\glob-watcher\node_modules\gaze\node_modules\globule\node_modules\glob\glob.js:577:20)

    即便不出问题,每个小项目之下有对于本机插件依赖的node_modules,对于团队开发,也不怎么妥当。

    请教: 故而,在此求教 gulp 如何管理多项目方法,新人初来乍到,愿指点一二,拜谢。

    14 条回复    2015-11-16 20:37:32 +08:00
    cxbig
        1
    cxbig  
       2015 年 11 月 10 日
    我们都是每个项目一套 package.json 和 gulpfile.js
    hkongm
        2
    hkongm  
       2015 年 11 月 10 日   1
    小项目需要用 gulp 么?如果是简单的浏览器编辑器同步 watch 的话,命令行一行搞定啊
    browser-sync start --server --files="*.html,css/*.css,*.css" --browser="google chrome" --open="external"

    如果 Node 项目(当然你没发在 Node 板块)的话,那就要像一楼朋友说的一样,需要单独的 Git 仓库和 package 啊
    jeffjade
        3
    jeffjade  
    OP
       2015 年 11 月 10 日
    喔,感谢;我们的每个单独项目过于小,而且繁多。如果每个项目下都放一个, SVN 不上传吧,用的时候都得 install 插件; SVN 上传,这个占用空间感觉耗不起;素以,只好另想想办法了。
    hkongm
        4
    hkongm  
       2015 年 11 月 10 日
    SVN 设置忽略 node_modules 目录,只扔 package.json 即可
    jeffjade
        5
    jeffjade  
    OP
       2015 年 11 月 10 日
    @hkongm 项目虽小,也想借助工具来对代码进行检测 /压缩 /美化 /合并 /监测代码 /转化模版等等;而 gulp 无疑是一个不错的选择,素以才...。
    Epirus
        6
    Epirus  
       2015 年 11 月 10 日
    使用 gulp --cwd . 然后做成一个命令行
    alian
        7
    alian  
       2015 年 11 月 10 日
    我觉得每次 install 其实还能接受,除非你们的 module 很多很多
    jeffjade
        8
    jeffjade  
    OP
       2015 年 11 月 10 日
    @alian 暂时也没有很多, 8 , 9 个的样子;但,感觉蛮多的东西要慢慢引入的,比如 Sass 等,所以就必须学习下这块了,若能做到简洁一丢丢,对使用体验来讲就“开心”很多嘛。
    jeffjade
        9
    jeffjade  
    OP
       2015 年 11 月 10 日
    @hkongm 感谢。这个方向有必要尝试一下耶。
    cxbig
        10
    cxbig  
       2015 年 11 月 10 日   1
    @jeffjade repo 你只要上传 package.json 和 gulpfile.js 即可, node_modules 放 ignore 。
    部署的时候直接在服务器端跑一次 npm install 和 gulp 。
    jeffjade
        11
    jeffjade  
    OP
       2015 年 11 月 13 日
    在 segmentFault 有一篇文章[ nodejs 中的 NODE_PATH ,地址: http://segmentfault.com/a/1190000002478924 ;谈及到用 NODE_PATH ( NODE 中用来寻找模块所提供的路径注册环境变量)来解决;但是也有其弊端,还未采用。
    jeffjade
        12
    jeffjade  
    OP
       2015 年 11 月 13 日
    @cxbig 感谢。办法觉得挺好,可以一试;若服务器环境有“内网测试”,“正式”等,同步起来好像要费点力气折腾下。
    cxbig
        13
    cxbig  
       2015 年 11 月 13 日
    @jeffjade 如果一个服务器部署同一个 app 的不同的 staging ,可以考虑 capistrano
    jeffjade
        14
    jeffjade  
    OP
       2015 年 11 月 16 日
    @cxbig thx 。 capistrano 目测很厉害的样子,可惜目前还不会用。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2107 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 14:03 PVG 22:03 LAX 06:03 JFK 09:03
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86