2015-06-12 4 views
0

У меня есть проект, который использует grunt и require.js. Я хотел бы оставить все задачи javascript из файла Gruntfile и использовать r.js для моего javascript.Как использовать r.js для оптимизации файлов javascript?

Когда я выполняю r.js -o path/to/app.build.js, система проходит и начинает оптимизировать весь веб-проект.

Я хочу, чтобы r.js просматривал мои javascript-файлы. Пехотинец может обрабатывать дерзость & 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 Но я не уверен, что это то, что я ищу.

EDIT

Спасибо @kryger! Чтобы очистить несколько вещей после тестирования, я обнаружил, что r.js остается в моем каталоге resources. Я ищу способ сохранить r.js node_modules & scss. У меня есть ворчащая задача, которая позаботится о scss-файле.

Я работаю с проектом 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 или любые файлы grunt захватывали ... Я просто хочу, чтобы r.js касался только файлов javascript.

Вот снимок экрана, чтобы показать: screenshot

Это то, что я делаю неправильно, я знаю ... Я просто не смог найти/понять, что это такое.

+1

Что вы подразумеваете под * «начинает оптимизировать весь веб-проект» *? r.js даже не обрабатывает SASS или изображения (он может только конкатенировать файлы CSS). В любом случае, r.js делает все, что вы ему сказали, в файле buildconfig (app.build.js). Вам нужно будет поделиться своим содержанием, чтобы получить конкретные ответы. – kryger

ответ

2

Ну, как и все остальное - Это было то, что я делал. Пока я работал (теперь, что кажется глупым), я нашел довольно много сообщений, которые были похожи, так что надеемся, что это поможет кому-то другому.

TL; DR:

Я переехал r.js в мой яваскрипте каталог. Таким образом, это будет работать только в этом каталоге.

Вот мой обновленный состав проекта:

/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 
Смежные вопросы