我应该从bower_components复制文件吗?在那里引用它们

Should I copy files from bower_components of reference them there?

本文关键字:在那里 引用 文件 bower components 复制 我应该      更新时间:2023-09-26

安装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目录中?

不要将它们复制到您的应用程序中——这完全违背了Bower这样的包管理器的意图!通过这样做,您可以从包管理器中接管对这些文件的控制权,然后您将处于与以前相同的状态,每次都必须手动复制文件并更新这些依赖关系。

只需直接引用bower_components/目录中的文件(很可能是在HTML中)。如果你不喜欢这个位置或名称,你可以让bower把你的组件放在其他地方,请参阅.bowerrc文档:http://bower.io/docs/config/


我可以想到只使用bower_components目录中的特定文件的用途,但仅在构建时使用

如果您编写了一个只在部署时运行的繁重任务,并从bower_components目录中删除了所有未使用的文件,那么这当然是有意义的,并且不会违背包管理器的想法,因为它只发生在每次部署时,而包管理器没有任何责任。

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

只需将它们留在bower_components中,并在index.html文件中引用适当的文件。你可以手动完成,也可以使用grunt-wiredep等工具自动完成。