gpt4 book ai didi

requirejs - 如何从丑化/优化中排除某些 requireJS 文件

转载 作者:行者123 更新时间:2023-12-03 06:35:19 26 4
gpt4 key购买 nike

我有一个正在运行的 requirejs 项目,它使用 grunt 进行构建和部署。如果根本不使用任何优化,构建就可以毫无问题地运行,并且我会得到一个大的 js 文件来将其部署到生产环境中。

我遇到的问题是,我有一些外部框架(如 angularJS),我已经有它的最小化/优化版本,并且不想再次优化它。

目前,未经优化,我通过 gruntfile 中的单独路径配置包含该框架的缩小版本。而在我的正常 main.js 中,我有用于开发的非缩小版本。

现在我想使用优化器来优化我自己的代码,但不优化外部框架。但外部框架应该包含在生成的大 JavaScript 文件中。基本上我想告诉优化器在某些情况下他应该使用原始文件。

我可以做这样的事情吗?

我只找到了一个全局排除选项,因此某些模块根本不包含在生成的优化js中。

这是我的 grunt 配置:

requirejs: {
compile: {
options: {
baseUrl: "<%= pkg.folders.jsSource %>",
name: "../external-libs/almond-0.1.1",
include: "main",
mainConfigFile: "<%= pkg.folders.jsSource %>/main.js",
out: "<%= pkg.folders.build + pkg.name + '-' + pkg.version %>/js/main.js",
//logLevel: 0,
optimize: "uglify2",
//optimize: "none",
paths: {
'angular':'../external-libs/min/angular-1.0.4',
'jquery':'../external-libs/min/jquery-1.7.2',
'jquery.mobile':'../external-libs/min/jquery.mobile-1.2.0',
'adapter': '../external-libs/min/jquery-mobile-angular-adapter-1.2.0',
'moment': '../external-libs/moment-1.6.2.min',
'iscroll': '../external-libs/min/iscroll-4.2.5',
'iscrollview': '../external-libs/min/jquery.mobile.iscrollview-1.2.6',
'add2Home': '../external-libs/min/add2home',
'config/config': "config/<%=configDatei%>"
}
}
}
},

这是 main.js 的相关部分:

require.config({
paths:{
'angular':'../external-libs/angular-1.0.4',
'jquery':'../external-libs/jquery-1.7.2',
'jquery.mobile':'../external-libs/jquery.mobile-1.2.0',
'adapter': '../external-libs/jquery-mobile-angular-adapter-1.2.0',
'moment': '../external-libs/moment-1.6.2.min',
'iscroll': '../external-libs/iscroll-4.2.5',
'iscrollview': '../external-libs/jquery.mobile.iscrollview-1.2.6',
'add2Home': '../external-libs/add2home'
},
shim:{
'angular':{ deps:['jquery'], exports:'angular' },
'iscroll':{ deps:['jquery'], exports:'iscroll' },
'iscrollview':{ deps:['jquery.mobile', 'iscroll'], exports:'iscrollview' }
}
});

感谢您的帮助。

最佳答案

只是一些建议使用empty:来指示将该模块包含在优化中。

然后在 require.config 中将指示 min 文件的用法。

requirejs: {
compile: {
options: {
{{ all other settings }}
paths: {
'angular':'empty:',
}
}
}
},

require.config:{
paths:{
'angular':'../external-libs/min/angular-1.0.4',
},
}

请注意,这是“空:”,末尾有一个冒号,而不是“空”。如果省略冒号,您将收到如下错误:

"No such file or directory [...]/empty.js" 

希望这有帮助。

关于requirejs - 如何从丑化/优化中排除某些 requireJS 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com