如何使用新的Asp-BundlerMinifier根据环境自动呈现许多脚本标记



目前,我正在使用NuGet包,它允许我定义带有许多JS文件的大捆绑包,

bundles.Add(new ScriptBundle("~/Bundles/js/PartOfMyGiantAngularApp").Include(
// messages
"~/App/messages/service/messageCache.module.js",
"~/App/messages/service/messageCache.service.js",
"~/App/messages/message-list/message-list.module.js",
"~/App/messages/message-list/message-list.component.js",
"~/App/messages/message-detail/message-detail.module.js",
"~/App/messages/message-detail/message-detail.component.js",
"~/App/messages/message-edit/message-edit.module.js",
"~/App/messages/message-edit/message-edit.component.js",
"~/App/messages/message-create/message-create.module.js",
"~/App/messages/message-create/message-create.component.js",
"~/App/messages/message.module.js"
)

并将它们全部拉入我的主html文件:

@Scripts.Render("~/Bundles/js/PartOfMyGiantAngularApp.js")

它将在生产中生成一个文件:

<script src="/Bundles/js/PartOfMyGiantAngularApp.js"></script>

,或者在dev中,它将呈现多个脚本标记。

<script src="/App/messages/service/messageCache.module.js"></script>
<script src="/App/messages/service/messageCache.service.js"></script>
<script src="/App/messages/message-list/message-list.module.js"></script>
<script src="/App/messages/message-list/message-list.component.js"></script>
<script src="/App/messages/message-detail/message-detail.module.js"></script>
<script src="/App/messages/message-detail/message-detail.component.js"></script>
<script src="/App/messages/message-edit/message-edit.module.js"></script>
<script src="/App/messages/message-edit/message-edit.component.js"></script>
<script src="/App/messages/message-create/message-create.module.js"></script>
<script src="/App/messages/message-create/message-create.component.js"></script>
<script src="/App/messages/message.module.js"></script>

当使用新的构建时Bundler/Minifier时,我们如何在开发模式下获得这种自动的多个文件,而不必在我的bundle配置中指定每个文件,也不必在主HTML页面中指定环境标记?我希望它能找出路径,让它们像旧的一样。当我不知道JS代码来自哪个文件时,很难调试一行代码。

这里写得很好:

https://learn.microsoft.com/en-us/aspnet/core/client-side/bundling-and-minification?tabs=visual-工作室%2aspnetcore2x

在:基于环境的捆绑和缩小我们将不得不这样做:

<environment include="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/css/site.css" />
</environment>

当我有很多JS文件时,这是一个可怕的解决方案!

我认为您想要禁用绑定。在RegisterBundles方法中(App_Start文件夹中的BundleConfig类)。添加此项,将禁用捆绑

BundleTable.EnableOptimizations = false;

最新更新