node_modules 应该加入版本控制吗 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zioc

node_modules 应该加入版本控制吗

  •  
  •   zioc 2017 年 5 月 24 日 7755 次点击
    这是一个创建于 3257 天前的主题,其中的信息可能已经有所发展或是发生改变。

    团队有 win 和 mac,会有冲突吗

    34 条回复    2017-05-25 19:37:00 +08:00
    clippit
        1
    clippit  
       2017 年 5 月 24 日
    原则上说不应该
    oneonesv
        2
    oneonesv  
       2017 年 5 月 24 日
    加了要死的,那么多文件。。
    SourceMan
        3
    SourceMan  
       2017 年 5 月 24 日
    。。。。为什么要加,这个完全不符合逻辑呀
    你统计下 node_modules,100-200M,几万个文件
    Troevil
        4
    Troevil  
       2017 年 5 月 24 日
    这个目录不是相当于 java 的 jar 依赖嘛... 依赖当然不传, build 之前自己 install 啊
    hcwhan
        5
    hcwhan  
       2017 年 5 月 24 日 via iPhone
    你可能是需要 npm skrinkwrap 搜索一下就知道了
    sutra
        6
    sutra  
       2017 年 5 月 24 日
    不要。

    如果你想控制依赖的具体的版本可以用 yarn。
    54007
        7
    54007  
       2017 年 5 月 24 日
    依赖管理应该只要 package.json 就行了
    juicy
        8
    juicy  
       2017 年 5 月 24 日
    yarn lock, npm shrinkwrap
    Tonni
        9
    Tonni  
       2017 年 5 月 24 日
    yarn 大法好
    hxsf
        10
    hxsf  
       2017 年 5 月 24 日
    yarn.lock +1
    Perry
        11
    Perry  
       2017 年 5 月 24 日
    package.json 里面的依赖写对就行
    coolcoffee
        12
    coolcoffee  
       2017 年 5 月 24 日
    会冲突,最典型的就是 node-sass,它是先下载 c 语言源码,然后本地调用编译器进行编译的。别说不同系统,就是不同的 node 版本都要 rebuild 才行
    changwei
        13
    changwei  
       2017 年 5 月 24 日 via Android
    package.json 加入版本控制就好,svn 或 git 去管理 package,package 再去管理 node_modules 就好。职责分明。
    slowgen
        14
    slowgen  
       2017 年 5 月 24 日
    不把依赖加进版本库,当你们依赖的库再次出现了 left-pad 事件,或者库的作者帐号被盗,被植入了恶意代码,你们要如何处理?
    jellybool
        15
    jellybool  
       2017 年 5 月 24 日 via iPhone
    yarn 大法好
    learnshare
        16
    learnshare  
       2017 年 5 月 24 日
    no,Git 里文件只要自己的代码就好了,第三方的用的时候在线安装
    flashback313
        17
    flashback313  
       2017 年 5 月 24 日
    yarn 大法好
    julyclyde
        18
    julyclyde  
       2017 年 5 月 24 日
    别学 google 的 one source tree 邪教
    incompatible
        19
    incompatible  
       2017 年 5 月 24 日
    @shuimugan 这种问题当然是通过 npm 私有仓库来解决了。
    metrue
        20
    metrue  
       2017 年 5 月 24 日
    node_modules 为什么用加入版本控制,package.json 放进去不叫好了吗?
    lsyAndroid
        21
    lsyAndroid  
       2017 年 5 月 24 日 via Android
    不应该,我记得 package.json 加上就行了
    frankynwa
        22
    frankynwa  
       2017 年 5 月 24 日
    不用,存 package.json 就行了。

    然而我司居然把 node_modules 文件夹压缩之后加入版本控制了。

    刚做项目不久,领导周末打电话问我:"项目里面 xx 插件是谁加的?怎么没打入压缩包内?现在构建版本都报错了你说怎么办????"

    我说领导你 npm install 一下就行了......
    nextbox
        23
    nextbox  
       2017 年 5 月 24 日
    不应该
    那么多文件。控制起来。是失控。。
    直接 package.json 就可以了啦。
    整个团队保持一样的 package.json 基本没啥问题的。
    Hilong
        24
    Hilong  
       2017 年 5 月 24 日 via Android
    yarn.lock 正解
    billlee
        25
    billlee  
       2017 年 5 月 24 日
    不要加入版本控制,但是一定要归档。否则哪天 npm 上的项目被删了。。
    orvice
        26
    orvice  
       2017 年 5 月 24 日
    https://github.com/github/gitignore/blob/master/Node.gitignore
    参考 github 的.gitignore 模板

    是不加入版本控制的
    nino
        27
    nino  
       2017 年 5 月 24 日
    其实有一种折衷的方法,我最近在使用,也是 facebook 内部很多项目的用法,就是把 npm 包压缩,然后 offline 安装。
    yarn 自带这个功能,可以参考这篇博客: https://yarnpkg.com/blog/2016/11/24/offline-mirror/
    nino
        28
    nino  
       2017 年 5 月 24 日
    当你有 N 多环境需要 npm install,然后依赖又特别多的时候你们就知道痛苦了,开发环境,测试环境,CI 环境……
    万一有的环境没有网络那又怎么办?其实依赖也进版本控制并不是一件不可接受的事,golang 项目的 vendor 一般也是推荐放进版本控制的。
    sox
        29
    sox  
       2017 年 5 月 24 日
    @billlee 现在已经不可能被删了
    spice630
        30
    spice630  
       2017 年 5 月 25 日
    为什么这个板块儿颜色不一样~~
    polun
        31
    polun  
       2017 年 5 月 25 日
    看场景吧。
    cxbig
        32
    cxbig  
       2017 年 5 月 25 日
    我们的自动部署都是实时 install + run,目标文件生成以后还会把这个文件夹删掉。
    cxbig
        33
    cxbig  
       2017 年 5 月 25 日
    补充上一条:我们只用于前端生成 JS 和 CSS。以 nodejs 为后端的项目是不是运行时依赖不太确定。
    sampeng
        34
    sampeng  
       2017 年 5 月 25 日
    原则上不需要加,但是 require 必须写死版本号。如果你不想本地跑的好好的,上线发现洗洗睡了的话。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2044 人在线   最高记录 6679       Select Lnguage
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 108ms UTC 16:13 PVG 00:13 LAX 09:13 JFK 12:13
    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