2013-06-13 2 views
1

Я использую Angular + Require для проекта. Когда я пытаюсь упаковать приложение с помощью r.js, используя:Абсолютная зависимость библиотеки в RequireJS

node r.js -o app.build.config.js 

Все работает, за исключением файлов библиотеки. Вместо того, чтобы искать их по предоставленному пути, зависимости просматриваются относительно папки, которую я предоставляю в качестве цели.

({ 
    appDir: "C:/dev/etc/", 
    baseUrl: "javascript/core/", 
    dir: "app-build/", 
    modules: [ 
     { 
      name: "application", 
      out: "app.js" 
     } 
    ], 
    findNestedDependencies: true 
}) 

ответ

1

Если вы хотите, чтобы одни и те же настройки, которые используются в коде во время выполнения, чтобы найти расположение библиотек (например, угловых), вы можете использовать mainConfigFile вариант:

...if you prefer the "main" JS file configuration to be read for the build so that you do not have to duplicate the values in a separate configuration, set this property to the location of that main JS file. The first requirejs({}), require({}), requirejs.config({}), or require.config({}) call found in that file will be used.

Так что ваши сборки config может выглядеть примерно так:

({ 
    appDir: "C:/dev/etc/", 
    baseUrl: "javascript/core/", 
    mainConfigFile: 'c:/dev/etc/js/config.js', // whatever your file is called 
    dir: "app-build/", 
    modules: [ 
     { 
      name: "application", 
      out: "app.js" 
     } 
    ], 
    findNestedDependencies: true 
}) 

У меня была такая же проблема, и приведенная выше решена для меня. Перед добавлением строки mainConfigFile я получаю что-то вроде этого от оптимизатора r.js:

Tracing dependencies for: application Error: ENOENT, no such file or directory '/some/path/app-build/jquery.js' In module tree: application`

Смежные вопросы