如何使用 r.js 仅优化 javascript 个文件?

How do I use r.js to optimize javascript files only?

我有一个项目正在使用 g运行t 和 require.js。 我想将所有 javascript 任务从 G运行t 文件中删除,并为我的 javascript.

使用 r.js

当我执行r.js -o path/to/app.build.js的时候,系统通过并开始优化整个web项目

我只想 r.js 查看我的 javascript 文件。 G运行t 可以处理 sass & images.Here 是我的目录结构:

/src/
    resources/
        js/
            vendor/
                require.js
                jquery.min.js
            plugins/
                pluginA.js
                pluginB.js
            modules/
                moduleA.js
                moduleB.js
                moduleC.js
            config.js
            main.js

当一切都完成后,我只想优化这些文件并将它们移动到我的最终文件中。在文档中我找到了 fileExclusionRegExp 但我不确定这就是我要找的内容。

编辑

谢谢@kryger! 为了在更多测试后澄清一些事情,我发现 r.js 保留在我的 resources 目录中。我正在寻找一种方法来保留 node_modules 目录的 r.js out 和 [=19= 目录的 out ] 目录。我有一个 g运行t 任务会处理 scss "stuff".

我正在使用 CodeIgniter 项目,所以这是我的系统的样子。

/trunk/
    application/
    logs/
    src/ <-- all of my "source" files (un-compressed scss and js)
        node_modules/
            ....
        resources/ 
            img/
                imgA.jpg
                imgB.jpg
            js/
                _build/
                    r.js
                    app.build.js
                vendor/
                    require.js
                    jquery.min.js
                plugins/
                    pluginA.js
                    pluginB.js
                modules/
                   moduleA.js
                   moduleB.js
                   moduleC.js
                config.js
                application.js
            scss/
                application/
                    fileA.scss
                    fileB.scss
                vendor/
                    bootstrap/
                        bootstrap.scss
                        ...
                site.scss
           Gruntfile.js
           package.json
    system/
    web/ <-- This is the site root directory
        _dist/
            resources/
                css/
                    optimized.css
                fonts/
                    vendor/
                        fontA.ttf
                js/
                    optimized.js

这是我的 app.build.js 的样子。

({
    'appDir': '../',
    'baseUrl': 'resources/js',
    'dir': '../../web/resources/js',
    'mainConfigFile': '../resources/js/config.js',
    'name': 'application'
})

当我 运行 r.js -o app.build.js 时,系统将遍历我的 resources 文件夹中的每个目录。

我不希望我的 php 文件或任何 g运行t 文件被它抓取...我只想 r.js 只触摸 javascript 文件。

以下是显示的屏幕截图:

这是我做错了什么我知道...我只是无法find/figure弄清楚它是什么。

好吧,就像其他任何事情一样 - 这是我正在做的事情。当我正在研究(现在看起来很愚蠢)时,我确实发现了很多类似的帖子,所以希望这会对其他人有所帮助。

TL;DR:

我将 r.js 移动到我的 javascript 目录中。这样它只会在该目录中起作用。

这是我更新的项目结构:

/trunk/
    _src/
        assets/
            js/
                _build/
                    app.build.js
                    r.js
                modules/
                plugins/
                vendor/
                application.js
                app.config.js
            scss/
            ....

这是我的 app.build.js 文件:

({
    'appDir': '../',
    'baseUrl': './',
    'dir': '../../../../web/_dist',
    'mainConfigFile': '../config.js',
    'modules': [
        {
            name: 'application'
        }
    ],
    'fileExclusionRegExp': /^(?:_build|(?:r|app.build)\.js)$/
})

构建完成后,我的 _dist 目录如下所示:

....
js/
    modules/
    plugins/
    vendor/
    application.js
    build.txt
    app.config.js