【问题标题】:How to include Javascript libraries in a Grunt project?如何在 Grunt 项目中包含 Javascript 库?
【发布时间】:2014-03-23 18:49:54
【问题描述】:

我正在尝试学习用于客户端开发的现代 Javascript 工作流程,因此我正在尝试 Grunt。

我想要一些库,如 AngularJSBootstrapmoment.js,并将它们安装在我的 dist 目录中。如果可能的话,我想为他们做一些包管理。

我已经查看了 Bowergrunt-bower-task,但我不确定它们是否适合这项任务,因为并非所有软件包都包含缩小版本,grunt-bower-task 似乎无论如何都忽略了这些。

是否有对 Grunt 友好的包管理解决方案来管理客户端 Javascript 库,或者我应该继续将它们下载到 vendor 文件夹并告诉 Grunt 将它们复制到 dist 文件夹中的 .js.min.js 变种?

【问题讨论】:

  • 管理客户端 Javascript 库到底是什么意思?
  • 最终用户浏览器将处理的内容。

标签: javascript gruntjs project bower


【解决方案1】:

我认为 bower 和 grunt 有不同的职责。用于客户端包管理的 Bower 和用于构建(和其他任务)的 grunt。至少我为此使用它们。使用 bower 安装 angularjs 和 bootstrap,它会下载压缩库和开发库。如果没有,你总是可以用 grunt 缩小它们。

是的,我相信用 bower 控制你的包并用 grunt 构建你的应用程序(使用 copy、concat、uglify 等任务)是最佳实践。

您也可以检查 Component,它相当于 bower。

【讨论】:

  • grunt-bower-task 怎么样?你的方法值得吗?
  • 说实话,我没用过,我想我不需要。我并不是说它没有用,但对我来说 bower install xxxx --save 使用 .bowerrc 比在运行 mocha 测试之前运行 jshint 的频率更低,为此我使用 grunt .我想这只是偏好问题......
  • 我结束了。我使用 bower 获取 bower_components 中的库,然后告诉 Grunt 将所需文件复制到目标文件夹。
【解决方案2】:

我曾经尝试使用grunt-curl 破解类似的东西 - 只需定义我想要包含的库列表,然后从cdnjs.com 下载它们,我相信这会使链接更新到当前版本。我在单独的 install 任务中完成了这项工作。

这不是最优雅的解决方案,但它满足了我当时的需求。如果您想要对您使用的软件包(即版本)进行更强的控制,我可能不会建议您这样做 - 但如果您这样做了,为什么不直接使用 Bower?

【讨论】:

    猜你喜欢
    • 2013-10-14
    • 1970-01-01
    • 2015-01-31
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    • 2019-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多