我的情况如下:
我想要实现的目标: 在开发和生产中使用相同的配置文件(每个页面上的标记都包含require = {}对象)。在开发过程中,我希望模块使用第三方的UNMINIFIED版本。但是,在优化发生后,我希望所有模块都使用该第三方的缩小版本。
我确实在理论上考虑了一个解决方案,但它似乎有点混乱,我希望更清洁的解决方案存在:
让运行时配置指向未经分类的版本
var require = {
paths:{
'thirdParty':'lib/thirdParty'
}
}
创建一个执行的模块(让我们称之为“PathRewrite”模块):
requirejs.config({
paths:{
'thirdParty':'lib/thirdParty.min'
}
})
在运行时配置中,将“PathRewrite”的路径定义为空
var require = {
paths:{
'thirdParty':'lib/thirdParty',
'PathRewrite':'empty'
}
}
在构建配置文件中定义“PathRewrite”的真实路径,以便将其包含在“main”文件中(构建后的连接文件)。
将“PathRewrite”包含为首先执行的模块的依赖项。
我希望会发生的是,在开发期间,当不使用优化文件时,将不使用PathRewrite,因此将使用运行时配置中未分化的第三方的路径。 优化项目时,将包含并执行PathRewrite。根据RequireJS文档,可以运行两次RequireJS配置,并且将附加/覆盖配置。 PathRewrite执行将覆盖“thirdParty”的路径缩小,因此将被所有模块使用。
希望我提供了足够的信息。我很高兴听到其他方法来完成这项工作。提前谢谢。
答案 0 :(得分:1)
在这个答案中似乎已经探讨了这个主题:
Loading min.js files Generated by TypeScript with Require
不要让标题劝阻你。打字稿不是那里回答问题的核心问题。不幸的是,讨论表明,RequireJS优化器可能是实现正常缩小工作的唯一方法,因为它似乎无法正确选择备用路径。
答案 1 :(得分:0)
为什么不想使用内置的RequireJs优化器?您可以只包含this option
optimize : "uglify2"
连接后,所有和第三方代码都将缩小。在这种情况下,您不需要使用缩小版本的第三方库。