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-09 21:47:23 +08:00 · 4921 次点击
    这是一个创建于 3062 天前的主题,其中的信息可能已经有所发展或是发生改变。

    问题: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 04:08:53 +08:00
    我们都是每个项目一套 package.json 和 gulpfile.js
    hkongm
        2
    hkongm  
       2015-11-10 09:48:08 +08:00   ❤️ 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 09:50:03 +08:00
    喔,感谢;我们的每个单独项目过于小,而且繁多。如果每个项目下都放一个, SVN 不上传吧,用的时候都得 install 插件; SVN 上传,这个占用空间感觉耗不起;素以,只好另想想办法了。
    hkongm
        4
    hkongm  
       2015-11-10 09:54:00 +08:00
    SVN 设置忽略 node_modules 目录,只扔 package.json 即可
    jeffjade
        5
    jeffjade  
    OP
       2015-11-10 10:05:38 +08:00
    @hkongm 项目虽小,也想借助工具来对代码进行检测 /压缩 /美化 /合并 /监测代码 /转化模版等等;而 gulp 无疑是一个不错的选择,素以才...。
    Epirus
        6
    Epirus  
       2015-11-10 11:11:38 +08:00
    使用 gulp --cwd . 然后做成一个命令行
    alian
        7
    alian  
       2015-11-10 13:11:42 +08:00
    我觉得每次 install 其实还能接受,除非你们的 module 很多很多
    jeffjade
        8
    jeffjade  
    OP
       2015-11-10 15:10:50 +08:00
    @alian 暂时也没有很多, 8 , 9 个的样子;但,感觉蛮多的东西要慢慢引入的,比如 Sass 等,所以就必须学习下这块了,若能做到简洁一丢丢,对使用体验来讲就“开心”很多嘛。
    jeffjade
        9
    jeffjade  
    OP
       2015-11-10 15:11:24 +08:00
    @hkongm 感谢。这个方向有必要尝试一下耶。
    cxbig
        10
    cxbig  
       2015-11-10 18:39:27 +08:00   ❤️ 1
    @jeffjade repo 你只要上传 package.json 和 gulpfile.js 即可, node_modules 放 ignore 。
    部署的时候直接在服务器端跑一次 npm install 和 gulp 。
    jeffjade
        11
    jeffjade  
    OP
       2015-11-13 10:41:59 +08:00
    在 segmentFault 有一篇文章[ nodejs 中的 NODE_PATH ,地址: http://segmentfault.com/a/1190000002478924 ;谈及到用 NODE_PATH ( NODE 中用来寻找模块所提供的路径注册环境变量)来解决;但是也有其弊端,还未采用。
    jeffjade
        12
    jeffjade  
    OP
       2015-11-13 11:21:53 +08:00
    @cxbig 感谢。办法觉得挺好,可以一试;若服务器环境有“内网测试”,“正式”等,同步起来好像要费点力气折腾下。
    cxbig
        13
    cxbig  
       2015-11-13 15:59:42 +08:00
    @jeffjade 如果一个服务器部署同一个 app 的不同的 staging ,可以考虑 capistrano
    jeffjade
        14
    jeffjade  
    OP
       2015-11-16 20:37:32 +08:00
    @cxbig thx 。 capistrano 目测很厉害的样子,可惜目前还不会用。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3565 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:47 · PVG 12:47 · LAX 21:47 · JFK 00:47
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.