你是否应该链接到生产中的bower_components?

我对使用Bower相对比较陌生,而且我不能确定是否应该将其链接到生产中的bower_components。 我应该使用一个咕task任务链接或复制我需要从bower_components文件到一个单独的目录?

我问这是因为我从来没有见过一个名为“bower_components”的网站,所以我有点害怕。 所有的初学者指南都只是链接到'bower_components / …',就像angular色教程一样。

你在使用Yeoman吗?

根据你的Gruntfile.js,你应该有不同的任务,其中之一就是'bower-install':这个任务会你index.html,find下面的注释块

<!-- bower:js --> <!-- endbower --> 

并在里面注入你的bower.json中指定的所有依赖。 这意味着该任务将为您的所有<script src“/ bower_components / ..”>块写入。

您从未注意到带有“bower_components”引用的网站,因为您的/ app目录是您的“开发”环境,即您的源项目。 从源代码创build运行“构build”任务的生产应用程序:此任务由执行不同作业的不同子任务组成,其中一个将bower_install任务添加的所有脚本连接在一个js文件中。

然后还有另一个任务将会缩小这个文件,另一个将运行testing,另一个将创build一个生产站点所在的“dist”目录,等等。

如果你使用Yeoman,你已经在Gruntfile.js中configuration了所有这些任务,只需打开它并尝试了解每个任务的function。

乍一看可能很难理解,例如构build任务是指14或15个子任务,我build议您注册只运行一个任务的自定义任务,看看会发生什么。

干杯

您可以通过创build一个.bowerrc文件(位于.bowerrc文件旁边)并将directory属性设置为其他名称来给您的bower安装目录一个更好的名称。 例如,我的.bowerrc有以下.bowerrc

 { "directory": "public/vendor" } 

那么还有一个密切相关的问题,你是否应该检查这个目录的内容到源代码pipe理。 有关这个问题的更深入的讨论,请看这里 。

最后,正如其他人已经提到的那样,build议您连接并缩小前端依赖项。

我没有看到直接连接到它的任何问题,但通常你会想要将所有的脚本连接到一个文件,并使其丑化,以减less文件的大小。

咕噜uglify任务可以很容易地为你处理这些事情。 你只需要提供一个文件数组来join。

 // Project configuration. grunt.initConfig({ uglify: { my_target: { files: { 'dest/output.min.js': ['src/input1.js', 'src/input2.js'] } } } }); 

刚开始使用bower_components是很常见的。 你可以在angular-seed starter项目的脚本引用中看到这个。 一旦开始部署生产应用程序并加载时间和性能变得至关重要,您应该考虑转换为解决scheme来合并和缩小依赖关系。