Javascript 带有网页包的实用程序功能文件

Javascript 带有网页包的实用程序功能文件,javascript,webpack,Javascript,Webpack,我正在将一个香草javascript项目移植到webpack。以前,在标记中导入了大量javascript文件。现在我使用webpack将它们全部放在bundle.js中 我遇到的一个问题是,以前我有一个文件“utils.js”,其中包含额外的日期原型和其他内容,例如: Date.prototype.addDays = function(days) { var dat = new Date(this.valueOf()); dat.setDate(dat.getDate() +

我正在将一个香草javascript项目移植到webpack。以前,在
标记中导入了大量javascript文件。现在我使用webpack将它们全部放在
bundle.js

我遇到的一个问题是,以前我有一个文件“utils.js”,其中包含额外的日期原型和其他内容,例如:

Date.prototype.addDays = function(days) {
    var dat = new Date(this.valueOf());
    dat.setDate(dat.getDate() + days);
    return dat;
}
该文件在全局范围内定义了这些内容,因此它们在任何地方都可用


在使用webpack编译项目时,如何实现类似的效果?

理想情况下,您不会这样做。您应该使用模块系统导入
utill.js
文件。如果你真的需要,这里有几种解决方案,修改内置原型通常被认为是不好的做法。@SLaks谢谢你的提醒。对于这种情况,您有没有推荐一种模式?我在
Date
上还有一些额外的东西,在很多地方都会用到。正如@SLaks告诉你的,如果一个函数
addDays
被添加到标准中,或者如果另一个库也遵循坏的做法,修改了Date对象,添加了这样一个函数,这些函数的签名或行为与您的不同,那么它要么会破坏您的代码,要么您的代码可能会破坏其他第三方代码。您应该始终使用实用函数或自己的类,就像does一样。仅当您为将要或将要添加到标准中的函数创建多边形填充时才扩展本机类型。@t.niese谢谢,我理解为什么不应该这样做。那么,标准做法是创建我自己的
MyDate
子类并使用它吗?理想情况下,您不会这样做。您应该使用模块系统导入
utill.js
文件。如果你真的需要,这里有几种解决方案,修改内置原型通常被认为是不好的做法。@SLaks谢谢你的提醒。对于这种情况,您有没有推荐一种模式?我在
Date
上还有一些额外的东西,在很多地方都会用到。正如@SLaks告诉你的,如果一个函数
addDays
被添加到标准中,或者如果另一个库也遵循坏的做法,修改了Date对象,添加了这样一个函数,这些函数的签名或行为与您的不同,那么它要么会破坏您的代码,要么您的代码可能会破坏其他第三方代码。您应该始终使用实用函数或自己的类,就像does一样。仅当您为将要或将要添加到标准中的函数创建多边形填充时才扩展本机类型。@t.niese谢谢,我理解为什么不应该这样做。那么,标准做法是创建我自己的
MyDate
子类并使用它吗?