我应该从bower_components复制文件吗?

时间:2014-10-25 22:29:23

标签: javascript bower bower-install

安装BackboneJSjQuery等后,我有一个非常大的bower_components目录。

├───.idea
│   ├───runConfigurations
│   └───scopes
└───app
    ├───bower_components
    │   ├───backbone
    │   ├───jquery
    │   │   ├───dist
    │   │   └───src
    │   │       ├───ajax
    │   │       │   └───var
    │   │       ├───attributes
    │   │       ├───core
    │   │       │   └───var
    │   │       ├───css
    │   │       │   └───var
    │   │       ├───data
    │   │       │   └───var
    │   │       ├───effects
    │   │       ├───event
    │   │       ├───exports
    │   │       ├───manipulation
    │   │       │   └───var
    │   │       ├───queue
    │   │       ├───sizzle
    │   │       │   ├───dist
    │   │       │   └───test
    │   │       │       ├───data
    │   │       │       └───unit
    │   │       ├───traversing
    │   │       │   └───var
    │   │       └───var
    │   └───underscore
    ├───css
    └───js

参考这些是什么最佳做法?例如直接,Grunt任务将位复制到主应用程序,或将bower_componects放在~/app目录中?

2 个答案:

答案 0 :(得分:3)

不要将它们复制到你的应用程序 - 这完全违背了像Bower这样的包管理器的意图!通过这样做,您可以从包管理器中控制这些文件 - 然后您将保持与以前相同的状态,每次手动复制文件并更新这些依赖项。

直接引用bower_components/目录中的文件(很可能是在HTML中)。如果您不喜欢该位置或名称,则可以让bower将您的组件放在其他位置,请参阅.bowerrc doc:http://bower.io/docs/config/


我可以考虑仅使用bower_components目录中的特定文件 - 但仅在构建时

如果您编写的grunt任务仅在部署时运行并从bower_components目录中删除所有未使用的文件,那当然是有道理的,并且不违反包管理器的想法,因为它只是发生在每个部署上,当包管理器没有责任时。

使用此方法可能遇到的唯一问题是,如果您最终将文件复制到另一个目录,那么在部署之前您必须更改bower_components中所有文件的引用也是。简单的解决方案是不重复文件,而只删除您不需要的文件。

答案 1 :(得分:0)

将它们保留在bower_components中,并在index.html文件中引用正确的文件。您可以手动执行此操作,也可以使用grunt wiredep等工具自动为您执行此操作。