如何缩小 asp.net 核心中的文件?
How to minify files in asp.net core?
asp.net 核心的文档显示了如何使用 grunt 或 gulp 执行 bundling and minification css
和 js
文件。
但是,当我使用 vs 2015 创建项目时,它会将 bundleconfig.json
文件添加到项目中。我想缩小 wwwroot/js 文件夹中的所有 js 文件。所以我更新了 bundleconfig.json 中的现有行以使用通配符 *
{
"outputFileName": "wwwroot/js/*.min.js",
"inputFiles": [
"wwwroot/js/*.js"
],
// Optionally specify minification options
"minify": {
"enabled": true,
"renameLocals": true
},
// Optinally generate .map file
"sourceMap": false
}
但是当我发布项目时出现错误
Processing wwwroot/js/*.min.js Illegal characters in path. Parameter
name: path
我认为 outputFileName
中不能有通配符,所以这里使用绝对路径。要创建多个包,请在数组中创建多个条目。
[
{
"outputFileName": "wwwroot/css/site.min.css",
// An array of relative input file paths. Globbing patterns supported
"inputFiles": [
"wwwroot/css/site.css"
]
},
{
"outputFileName": "wwwroot/js/site.min.js",
"inputFiles": [
"wwwroot/js/site.js"
],
// Optionally specify minification options
"minify": {
"enabled": true,
"renameLocals": true
},
// Optinally generate .map file
"sourceMap": false
}
]
上面这个来自默认 bundleconfig.json
。
旁注:
*.min.js
也是 *.js
顺便说一句。所以如果你不删除之前的一个,它会在每次捆绑时递归添加,所以要小心。
截至 2021 年 3 月 - Microsoft-recommended approach is to leverage the WebOptimizer Core nuget package created by Mads Kristensen (PM on Visual Studio team) - https://www.nuget.org/packages/LigerShark.WebOptimizer.Core/
它不使用 bundleConfig.json
文件,并且倾向于通过 Startup.ConfigureServices() 进行配置,但是你当然可以编写一个小的静态助手来 returns 一个动作并解析出来您的 bundleConfig.json 文件通过 JSON.NET 或 System.Text.Json,如果您有大量的捆绑包并且已经花时间以正确的方式获取您的 json 文件。然后在 Startup 中,您可以为 services.AddWebOptimizer(action)
.
的调用提供辅助操作
WebOptimizer 具有标签助手,可帮助在 CSHTML 文件中添加 <link>
和 <script>
标签。
您可以从 GitHub 存储库中查看 README 的详细信息:
https://github.com/ligershark/WebOptimizer
asp.net 核心的文档显示了如何使用 grunt 或 gulp 执行 bundling and minification css
和 js
文件。
但是,当我使用 vs 2015 创建项目时,它会将 bundleconfig.json
文件添加到项目中。我想缩小 wwwroot/js 文件夹中的所有 js 文件。所以我更新了 bundleconfig.json 中的现有行以使用通配符 *
{
"outputFileName": "wwwroot/js/*.min.js",
"inputFiles": [
"wwwroot/js/*.js"
],
// Optionally specify minification options
"minify": {
"enabled": true,
"renameLocals": true
},
// Optinally generate .map file
"sourceMap": false
}
但是当我发布项目时出现错误
Processing wwwroot/js/*.min.js Illegal characters in path. Parameter name: path
我认为 outputFileName
中不能有通配符,所以这里使用绝对路径。要创建多个包,请在数组中创建多个条目。
[
{
"outputFileName": "wwwroot/css/site.min.css",
// An array of relative input file paths. Globbing patterns supported
"inputFiles": [
"wwwroot/css/site.css"
]
},
{
"outputFileName": "wwwroot/js/site.min.js",
"inputFiles": [
"wwwroot/js/site.js"
],
// Optionally specify minification options
"minify": {
"enabled": true,
"renameLocals": true
},
// Optinally generate .map file
"sourceMap": false
}
]
上面这个来自默认 bundleconfig.json
。
旁注:
*.min.js
也是 *.js
顺便说一句。所以如果你不删除之前的一个,它会在每次捆绑时递归添加,所以要小心。
截至 2021 年 3 月 - Microsoft-recommended approach is to leverage the WebOptimizer Core nuget package created by Mads Kristensen (PM on Visual Studio team) - https://www.nuget.org/packages/LigerShark.WebOptimizer.Core/
它不使用 bundleConfig.json
文件,并且倾向于通过 Startup.ConfigureServices() 进行配置,但是你当然可以编写一个小的静态助手来 returns 一个动作并解析出来您的 bundleConfig.json 文件通过 JSON.NET 或 System.Text.Json,如果您有大量的捆绑包并且已经花时间以正确的方式获取您的 json 文件。然后在 Startup 中,您可以为 services.AddWebOptimizer(action)
.
WebOptimizer 具有标签助手,可帮助在 CSHTML 文件中添加 <link>
和 <script>
标签。
您可以从 GitHub 存储库中查看 README 的详细信息: https://github.com/ligershark/WebOptimizer