grunt-contrib-requirejs的Gruntfile问题

时间:2014-04-02 17:51:36

标签: javascript requirejs gruntjs

我正在配置我的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复制到这里就好了......如果这是唯一的方法。

如果您需要更多信息,请与我们联系!

1 个答案:

答案 0 :(得分:0)

您的bower目录中的JS文件应该包含在requirejs的优化输出中,只要它们在您的require js应用程序中配置和引用即可。如果它们没有被引用为依赖项,我认为它们不会被包含在内。

可能需要手动复制ico,png,htaccess和其他文件。

根据你的部分内容,文本插件和hbs插件可以将它们编译成我认为的优化文件。

我认为定义空:在路径中是用于使用网络资源(例如,当使用CDN而不是使用本地bower库时),因此路径配置可能是不必要的