【问题标题】:Can wiredep or anything else be used to insert <script> tags in HTML to include all .js files in given directories?可以使用 Wiredep 或其他任何东西在 HTML 中插入 <script> 标记以包含给定目录中的所有 .js 文件吗?
【发布时间】:2015-12-25 13:13:58
【问题描述】:

就像您在 HTML 中包含来自 Bower 的 JS 文件而不指定每个脚本的 URL 一样,我想包含特定目录中包含的所有 JS 文件。 如何解决这个问题?可以有多个目录,JS文件可以位于指定目录的任意深度。

<!-- build:js({.tmp,app}) scripts/scripts.js -->
<script src="scripts/app.js"></script>
<script src="scripts/controllers/main.js"></script>
<script src="scripts/controllers/about.js"></script>
<script src="scripts/controllers/contact.js"></script>
<!-- endbuild -->

此示例代码来自一个 yeoman 生成的项目的 index.htmlscripts 目录位于app 目录中,该目录又指定为build:js 的参数。

据我所知,&lt;!-- build:js({.tmp,app}) scripts/scripts.js --&gt; 告诉wiredep 包含应用程序目录中的所有js 文件并创建一个连接文件scripts/scripts.js

但是,当我删除&lt;script&gt; 标签并再次运行wiredep 时,它不会重新创建&lt;script&gt; 标签

<!-- build:js({.tmp,app}) scripts/scripts.js -->

<!-- endbuild -->

而如果我删除来自 Bower 的 JS 文件的脚本标签,然后wiredep 会重新创建它们。

【问题讨论】:

  • 您可以在服务器上创建一个脚本来制作一个包含包含的长字符串。并在服务器上替换 html。但我更喜欢使用 require.js
  • 我想在构建时执行此操作,而不是运行时。

标签: angularjs gruntjs yeoman wiredep grunt-wiredep


【解决方案1】:

你可以检查这个answer here,我仍然怀疑你将如何处理依赖关系......我的意思是,脚本应该按照一定的顺序加载才能工作。这并不是说您要让该任务自行包含所有文件,并且它们的顺序将自动解决。

您也可以查看this post

【讨论】:

    猜你喜欢
    • 2013-02-08
    • 1970-01-01
    • 2011-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多