【发布时间】:2014-05-21 00:22:20
【问题描述】:
在this RequireJS example 之后,我试图为所有供应商js 资产(如jquery 和foundation)创建一个文件,同时在其他模块中加载页面特定代码。
虽然我可以成功构建和复制 js(使用 grunt requirejs 优化器)到 build 文件夹中,但 require.config 中的 baseUrl 现在显然是错误的。
baseUrl: 'js' 指向public/js 而不是public/build/js,因此所有路径都不正确。
有没有办法在运行优化器时动态更新baseUrl?所以它指向public/build/js?
这是我的繁重任务:
requirejs: {
dist: {
options: {
baseUrl: '<%=pkg.paths.js%>',
dir:'project/public/build/js',
mainConfigFile: '<%=pkg.paths.js%>main.js',
optimize: 'none',
removeCombined: true,
uglify2: {
no_mangle: true,
compress: {
drop_console: true
}
},
modules: [
{
name: 'vendorCommon'
},
{
name: 'dashboard',
exclude: ['vendorCommon']
}
]
}
}
}
供应商通用
define(['jquery', 'foundation'],
function () {
//Just an empty function, this is a place holder
//module that will be optimized to include the
//common depenendencies listed in this module's dependency array.
});
需要配置
require.config({
baseUrl: '/js',
priority: ['vendorCommon'],
paths: {
'vendorCommon':'vendor/vendor-common',
'jquery':'../bower_components/jquery/dist/jquery.min',
'foundation':'../bower_components/foundation/js/foundation/foundation',
'dashboard':'views/dashboard'
},
shim: {
'foundation': ['jquery']
}
});
【问题讨论】:
标签: javascript requirejs