我正在配置我的Gruntfile而且我遇到了一些我认为应该可行的事情,但是我无法为它找到合适的配置。我正在尝试使用grunt-contrib-requirejs模块将我的bower组件复制到我的dist上。我坚持的部分是在复制到dist时保持文件夹结构。
我的应用程序的基本结构,而dist /应该以相同的方式构建
Gruntfile.js
app/
- assets/
- bower_components/
- js/
- img/
- etc/
- index.html
目前,我在复制模块中定义了每个文件,并将它们全部复制到
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: 'app',
dest: 'dist',
src: [
'*.{ico,png}',
'.htaccess',
'partials/**/*',
// Bower Components
'assets/bower_components/requirejs/require.js',
'assets/bower_components/fastclick/lib/fastclick.js',
'assets/bower_components/jquery/dist/jquery.min.js',
'assets/bower_components/modernizr/modernizr.js'
]
}]
}
},
但我希望消除这种情况并使用我在main.js中定义的路径来复制这些文件。硬件更少,更自动化。
我的需要任务
requirejs: {
dist: {
options: {
mainConfigFile: app + '/assets/js/main.js',
dir: dist + '/assets/js',
optimize: 'uglify',
paths: {
modernizr: 'empty:',
jquery: 'empty:',
fastclick: 'empty:'
}
}
}
},
此当前配置与复制相结合可以将它们全部移动。如果我可以一起消除paths属性并仅使用目录属性那将是很好的。如果我必须将我的路径从我的main.js复制到这里就好了......如果这是唯一的方法。
如果您需要更多信息,请与我们联系!
答案 0 :(得分:0)
您的bower目录中的JS文件应该包含在requirejs的优化输出中,只要它们在您的require js应用程序中配置和引用即可。如果它们没有被引用为依赖项,我认为它们不会被包含在内。
可能需要手动复制ico,png,htaccess和其他文件。
根据你的部分内容,文本插件和hbs插件可以将它们编译成我认为的优化文件。
我认为定义空:在路径中是用于使用网络资源(例如,当使用CDN而不是使用本地bower库时),因此路径配置可能是不必要的