- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个使用 bower.js 的应用程序;这是我第一次使用 Bower,如果您在我的问题描述中发现任何明显错误,请纠正我。
来自 Ruby 背景,我希望包管理器有一个 .lock 文件,在 git 下跟踪,它准确地告诉我当前正在使用的版本。 Bower 似乎不会发生这种情况(我说的对吗?)。
几天前,我删除并重新克隆了我的存储库,然后运行 bower install
,认为这样的命令只会安装所需版本的 js 组件。
然后,今天我在一个 javascript 文件中做了一行修复,使用 grunt watch
编译了 application.js,然后意识到 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 代码?
最佳答案
Is this dangerous? Will bower install update all the components, that are likely not updated in my local version and are not tracked by git, ending up having completely different js code in production?
是的,这可能会发生并且会导致问题。尽管只要您的依赖版本指定为例如,影响将是有限的。 "~1.2.3"
,将锁定主要/次要版本,只允许补丁级别更新。
与 bower 相比,包管理器通常用于 node.js 环境 - npm - 有一个名为 npm shrinkwrap
的功能/命令,它会创建一个 npm-shrinkwrap.json
文件来锁定您的依赖版本,以便安全地运行 npm之后安装
。这可能是您想要的。
但是,目前的 bower 还没有这个功能——Github 上有关于它的讨论,例如here .
我认为目前有以下选项可以解决您的情况:
bower_components
(非常丑陋,因为这会在 git 中产生大量噪音)。“1.2.3”
而不是 “~1.2.3”
。
npm shrinkwrap
来锁定您的依赖项。干杯,亚历克斯
关于javascript - 在生产中部署时运行 "bower install"是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34017182/
我刚刚升级到Bower 1.0,做了一个bower install,发现了一堆新的.bower.json文件(注意前导时期)。 我在changelog或文档中没有找到对.bower.json的引用。我
Bower 的网站描述了 Bower.json 中的 ignore 键: ignore [array]: An array of paths not needed in production that
我已经在我的项目根目录中添加了一个 bower 包。我正在使用 bower,因此可以更轻松地管理每个组件的更新(bower 的功能之一)。但是我在安装后收到了这条消息: no-json No bowe
当我通过以下方式从 git repo 安装库时: bower install git@github.com:fabiantheblind/p5.js.git --save 该组件被克隆到我的 bowe
我已经为 Bower 设置了一个 Nexus 代理注册表。我正在使用 Debian 9。bower 版本是 1.8.8,安装了 bower-nexus3-resolver(版本 1.0.4)。我的 .
是否可能只有一个可以从 Bower“安装”的存储库? 目前我已经注册了一个连接到开发库的 bower 包,但是在运行时 bower install我只想要 dist要下载的文件。 我见过有人保留两个存
我正在尝试安装 https://github.com/aterrien/jQuery-Knob通过 bower 。在包的 bower.json 文件中,我看到: { "name": "aterrien
我正在尝试通过 bower 安装本地 Jquery ui。 我有一个名为 jquery-ui 的本地文件夹并运行了以下命令 bower install jquery-ui/jquery-ui.min.
我正在研究如何使用 bower 安装软件包。 当我 'bower install packagename' 时,软件包安装在/app/components/中。 但是,我想自己决定项目的结构。 有没有
$ bower install angular-animate --save bower cached git://github.com/angular/bower-angular-animate.g
我正在使用 bower 从下面的 bower.json 中查看依赖项,所以问题是我希望 bower 提供更新版本发布的依赖项报告但不安装它,对于使用 npm-check-updates for npm
一些库在其 Github 存储库中没有已经构建的 JavaScript 文件,因为这些库的作者反对保留构建工件(例如 Sinon.JS)。是否有使用 Bower 处理此问题的首选方法? 我知道我可以
我想运行我自己的 bower 服务器来开始跨团队共享几个内部模块。我很难找到运行您自己的服务器的信息。在 bower.io 网站上有这条线 N.B. To run your own Bower End
在 *nix 上,bower 使用 ~/.bower其缓存的文件夹(包等)。 我想将其更改为其他位置。 bower spec来自的文档建议我配置 storage输入我的.bowerrc . 我在我的项
我有一个项目依赖于另一个使用 Bower 的项目。我要 bower install当我在父项目上运行它时也运行在该组件上。到目前为止,我还没有在 configuration spec 中找到任何东西,
如何在不提供 bower.json 中的用户凭据的情况下将访问受限存储库作为依赖项添加到 bower.json? 即我想避免像这样指定它: { "dependencies": { "ang
Bower 文档说 N.B. If you aren't authoring a package that is intended to be consumed by others (e.g., yo
我正在下载 Angular、Angular-Bootstrap 和 Bootstrap with Bower。 Bootstrap 依赖于进程中安装的 jquery。但我的项目中不需要它,因为我只使用
我正在尝试为使用 Bower 的应用程序设置自动包构建。 postinstall中进入bower install时,bower提示: [?] May bower anonymously report
我想将特定分支的最新版本指定为依赖项。具体来说,我想在 Bootstrap v3.0 发布之前使用它。 将其指定为 Bower 中的依赖项的最佳方法是什么? 最佳答案 您需要使用#、appended
我是一名优秀的程序员,十分优秀!