我正在开发一个使用 bower.js 的应用程序;这是我第一次使用 bower,所以如果您在我的问题描述中发现任何明显错误的地方,请纠正我。
------------------------------------------------
来自 Ruby 背景,我希望包管理器有一个在 git 下跟踪的 .lock 文件,它可以准确地告诉我当前正在使用哪些版本。Bower 似乎不会发生这种情况(对吗?)。
几天前,我删除并重新克隆了我的存储库,然后运行bower install
,认为这样的命令只会安装所需版本的 js 组件。
然后,今天我在一个 javascript 文件中进行了单行修复,使用 编译了 application.js grunt watch
,并意识到 application.js 自动填充了大量来自我不知道的 bower 组件更新的新代码。
我发现我们的 bower 组件位于 .gitignore 下,而bower install
我几天前运行的那个实际上已经更新了两个组件而我没有注意到它。
当我意识到发生了什么时,我立即查看了我们的部署过程,我将其粘贴在这里:
bundle install --path ${SNAP_CACHE_DIR}/.bundle
npm install -g bower grunt-cli
bower cache clean && bower install && bower list
bundle exec cap [our application name] deploy
这很危险吗?是否会bower install
更新所有可能未在我的本地版本中更新且未被 git 跟踪的组件,最终在生产中拥有完全不同的 js 代码?