Javascript 捆扎机及;由于使用了严格的

Javascript 捆扎机及;由于使用了严格的,javascript,asp.net-mvc,visual-studio,visual-studio-2019,Javascript,Asp.net Mvc,Visual Studio,Visual Studio 2019,我正在使用libman.json将客户端库从cdnjs拉入项目中的一个文件夹中。然后,我想将这些库打包并缩小为一个js文件,该文件将在web应用程序中部署和引用。为此,我使用了一个名为Bundler&Minifier的visualstudio扩展。我在bundle.config中设置了所有内容,但我尝试绑定的一个库遇到了问题。具体地说,如果我试图在捆绑包中包含Chart.js(2.8.0),我在构建时会遇到以下错误: (Bundler&Minifer)严格模式不允许分配给未定义的 变量:r 这不

我正在使用libman.json将客户端库从cdnjs拉入项目中的一个文件夹中。然后,我想将这些库打包并缩小为一个js文件,该文件将在web应用程序中部署和引用。为此,我使用了一个名为Bundler&Minifier的visualstudio扩展。我在bundle.config中设置了所有内容,但我尝试绑定的一个库遇到了问题。具体地说,如果我试图在捆绑包中包含Chart.js(2.8.0),我在构建时会遇到以下错误:

(Bundler&Minifer)严格模式不允许分配给未定义的 变量:r

这不应该是一个警告而不是一个错误吗?我看不出这应该如何防止捆绑/缩小并导致构建失败。有没有一种方法可以覆盖这种行为

这不应该是一个警告而不是一个错误吗

不,因为这就是使用严格模式的全部意义,我们希望得到错误(而不是警告)。从

严格模式将一些以前接受的错误更改为错误。 JavaScript的设计目的是让新手开发人员更容易,而且 有时,它给出的操作应该是错误的,而不是错误的 语义学。有时这可以解决眼前的问题,但有时 这将在未来造成更严重的问题。严格模式处理这些问题 将错误视为错误,以便发现并及时修复

如果您的第三方库出现错误,您可以修复该问题或放弃该库。。。如果您不想在本地项目中修复它,您可以提出一个问题,该问题于2019年3月18日在Chart.js GitHub中提出

要手动修复,请在Chart.js
hwb2rgb(hwb)
函数(第343行,v2.8.0)中添加以下变量声明:


我不认为这是一个真正的捆绑错误。。。js文件正在使用严格模式。在严格模式下,.js应显式定义变量。。。(不能使用未定义的变量)。。。只需修复.js文件中的错误(使用
var
定义变量)或删除
中的“use strict”我同意,但问题是我不应该修改通过包管理器获得的第三方库,因为这样我的团队中的每个人都需要确保他们进行相同的修改。我同意Chart.js开发人员在源代码中使用“use strict”,然后不遵守所有规则,这是他们的错,但我仍然认为这不应该阻止缩小和绑定。当然应该打印一条警告,但它不应该阻止我构建解决方案。问题在于Chart.js。如果您查看下面第359-364行链接中的源代码,您将看到case语句,它们设置了变量r,而没有声明r。这就是导致捆绑程序失败的原因。可能会在他们的github上提出问题/bug…我会这样做,但我希望在此期间找到一个解决方案,因为这实际上阻止了我构建我们的解决方案。
var r, g, b;