Bundler & Minifier 生成 "Object reference not set to an instance of an object" 错误
Bundler & Minifier generating "Object reference not set to an instance of an object" error
我正在尝试使用 BuildBundlerMinifier.Core
在 ASP.NET Core 3.0 中捆绑和缩小我的 CSS 和 JS 文件。
还为 Visual Studio 2019 安装了 Bundler & Minifier
扩展。
当我尝试调试项目时,它可以正常工作,没有错误,但是当我重建它时,出现以下错误;
Object reference not set to an instance of an object
重新启动时我没有收到错误消息 Visual Studio 我可以再次调试项目,但如果我再次重建它,我收到错误消息。
是bundleconfig.json
个文件
[
{
"outputFileName": "wwwroot/assets/css/style.bundle.min.css",
"inputFiles": [
"wwwroot/assets/plugins/global/plugins.bundle.css",
"wwwroot/assets/css/style.bundle.css",
"wwwroot/assets/css/skins/header/base/light.css",
"wwwroot/assets/css/skins/header/menu/light.css",
"wwwroot/assets/css/skins/brand/light.css"
],
"sourceMap": false,
"sourceMapRootPath": null
}
,
{
"outputFileName": "wwwroot/assets/js/scripts.min.js",
"inputFiles": [
"wwwroot/assets/plugins/global/plugins.bundle.js",
"wwwroot/assets/js/scripts.js",
"wwwroot/assets/js/pages/dashboard.js",
"wwwroot/content/js/mobil-detect.js",
"wwwroot/content/js/lazy-img.js",
"wwwroot/content/js/ziyaretci.js"
]
}
]
Visual Studio、Bundler & Minifier 扩展、BuildBundlerMinifier 和 BuildBundlerMinifier.Core 是最新的
我该如何解决?
该项目有 BuildBundlerMinifier 和 BuildBundlerMinifier.Core。我从 nuget 中删除了 BuildBundlerMinifier,现在它可以工作了。
如果您碰巧(像我一样)在您的目录名称中的某处有一个哈希 (#),使用 BuildBundlerMinifier 的 .NET Core 3.1 将破坏缩小。
我花了一些时间才弄明白,包括卸载和重新安装 nuget 包和 Visual Studio 扩展。
我想知道是否还有其他特殊字符导致了这个问题。
您可以在 bundleconfig.json.
中轻松看到这一点
示例文件夹结构:
C:\MyProjects\C#Test\MySolution\MyProject\wwwroot\js\
如果损坏,它将看起来像:
[
{
"outputFileName": "#Test\MySolution\MyProject\wwwroot\js\Math.min.js",
"inputFiles": [
"#Test\MySolution\MyProject\wwwroot\js\Math.js"
]
}
]
而不是
[
{
"outputFileName": "wwwroot/js/Math.min.js",
"inputFiles": [
"wwwroot/js/Math.js"
]
}
]
这可能是您的某个 js 文件源代码中的语法问题。
在我的例子中,使用无效合并运算符“??”是问题所在。
将其替换为简单的“if”空检查,编译错误消失了。
在我的例子中,这是因为可选的链接运算符,即 ?
。
通过重构所有“??”解决使用“?:”条件(三元)运算符取消合并运算符。
我正在尝试使用 BuildBundlerMinifier.Core
在 ASP.NET Core 3.0 中捆绑和缩小我的 CSS 和 JS 文件。
还为 Visual Studio 2019 安装了 Bundler & Minifier
扩展。
当我尝试调试项目时,它可以正常工作,没有错误,但是当我重建它时,出现以下错误;
Object reference not set to an instance of an object
重新启动时我没有收到错误消息 Visual Studio 我可以再次调试项目,但如果我再次重建它,我收到错误消息。
是bundleconfig.json
个文件
[
{
"outputFileName": "wwwroot/assets/css/style.bundle.min.css",
"inputFiles": [
"wwwroot/assets/plugins/global/plugins.bundle.css",
"wwwroot/assets/css/style.bundle.css",
"wwwroot/assets/css/skins/header/base/light.css",
"wwwroot/assets/css/skins/header/menu/light.css",
"wwwroot/assets/css/skins/brand/light.css"
],
"sourceMap": false,
"sourceMapRootPath": null
}
,
{
"outputFileName": "wwwroot/assets/js/scripts.min.js",
"inputFiles": [
"wwwroot/assets/plugins/global/plugins.bundle.js",
"wwwroot/assets/js/scripts.js",
"wwwroot/assets/js/pages/dashboard.js",
"wwwroot/content/js/mobil-detect.js",
"wwwroot/content/js/lazy-img.js",
"wwwroot/content/js/ziyaretci.js"
]
}
]
Visual Studio、Bundler & Minifier 扩展、BuildBundlerMinifier 和 BuildBundlerMinifier.Core 是最新的 我该如何解决?
该项目有 BuildBundlerMinifier 和 BuildBundlerMinifier.Core。我从 nuget 中删除了 BuildBundlerMinifier,现在它可以工作了。
如果您碰巧(像我一样)在您的目录名称中的某处有一个哈希 (#),使用 BuildBundlerMinifier 的 .NET Core 3.1 将破坏缩小。
我花了一些时间才弄明白,包括卸载和重新安装 nuget 包和 Visual Studio 扩展。
我想知道是否还有其他特殊字符导致了这个问题。
您可以在 bundleconfig.json.
中轻松看到这一点示例文件夹结构:
C:\MyProjects\C#Test\MySolution\MyProject\wwwroot\js\
如果损坏,它将看起来像:
[
{
"outputFileName": "#Test\MySolution\MyProject\wwwroot\js\Math.min.js",
"inputFiles": [
"#Test\MySolution\MyProject\wwwroot\js\Math.js"
]
}
]
而不是
[
{
"outputFileName": "wwwroot/js/Math.min.js",
"inputFiles": [
"wwwroot/js/Math.js"
]
}
]
这可能是您的某个 js 文件源代码中的语法问题。 在我的例子中,使用无效合并运算符“??”是问题所在。 将其替换为简单的“if”空检查,编译错误消失了。
在我的例子中,这是因为可选的链接运算符,即 ?
。
通过重构所有“??”解决使用“?:”条件(三元)运算符取消合并运算符。