Angularjs 在构建时有条件地注入特定于设备的角度代码

Angularjs 在构建时有条件地注入特定于设备的角度代码,angularjs,gulp,webpack,Angularjs,Gulp,Webpack,我加入了一个使用Angular+Gulp+Webpack+Bower的项目 该项目是为不同的设备构建的,例如: gulp deviceA gulp设备b 对于每种不同的设备类型,我将有一个名为device.js的模块,它提供相同功能的不同版本,例如 device.foo(); device.bar(); 我希望根据传递给Gulp的参数,在构建时有条件地注入device.js的正确版本。device.js应在应用程序启动之前在应用程序范围内可用 如果我以非角度的方式处理它,我可以在构建时轻松地将

我加入了一个使用Angular+Gulp+Webpack+Bower的项目

该项目是为不同的设备构建的,例如:

gulp deviceA

gulp设备b

对于每种不同的设备类型,我将有一个名为device.js的模块,它提供相同功能的不同版本,例如

device.foo();
device.bar();
我希望根据传递给Gulp的参数,在构建时有条件地注入device.js的正确版本。device.js应在应用程序启动之前在应用程序范围内可用

如果我以非角度的方式处理它,我可以在构建时轻松地将一些自执行代码注入index.html,从而全局提供设备对象。但是,我想让它更友好,这样我就可以使用$rootScope向应用程序广播设备事件


我的理解是,一个角度的供应商将适合我的需要。这是正确的吗?如果是,在构建时注入适当的提供者的正确方法是什么

你不能用gulp来指定哪个device.js要部署到angular应用程序正在寻找的路径以解决依赖关系吗?我很难为情地说这是漫长的一天,我不知道为什么我没有自动想到!假设我是这样做的,你会说提供商仍然是最好的方式吗?你的意思是让device.js成为一个像工厂或服务一样的角度提供商?我已经将其中一个编码为工厂,但不知道提供商是否更有意义,因为下面是提供商角度描述中的一行“仅当您希望公开应用程序范围配置的API时,才应使用提供程序配方,该API必须在应用程序启动之前进行。这通常只对行为可能需要在应用程序之间稍有不同的可重用服务感兴趣。“我要问的是,如果我没有考虑到一些工厂的限制,如果你在构建层面上做大部分的配置,那么你可能只会使用工厂。也许你可以从这开始,如果它有局限性,可以考虑使用一个成熟的提供商。难道你不能使用gulp来指定哪个device.js要部署到angular应用程序正在寻找的路径以解决依赖关系吗?我很难为情地说,这是漫长的一天,我不知道为什么我没有自动想到这一点!假设我是这样做的,你会说提供商仍然是最好的方式吗?你的意思是让device.js成为一个像工厂或服务一样的角度提供商?我已经将其中一个编码为工厂,但不知道提供商是否更有意义,因为下面是提供商角度描述中的一行“仅当您希望公开应用程序范围配置的API时,才应使用提供程序配方,该API必须在应用程序启动之前进行。这通常只对行为可能需要在应用程序之间稍有不同的可重用服务感兴趣。“我要问的是,如果我没有考虑到一些工厂的限制,如果你在构建层面上做大部分的配置,那么你可能只会使用工厂。也许你可以从这开始,如果它有局限性,考虑使用一个成熟的提供商。