2014-01-08 2 views
0

В моем приложении, я поименованный модуль определен встроенный в index.html:Возможно ли пропустить встроенные модули с именем r.js build?

<script> 
    define('config', { 
     mode: '...', 
     environment: '...', 
     apiUrl: '...', 
     rootPath: '...', 
     baseImageUrl: '...' 
    }); 
</script> 

мне нужно определить это в моем веб-страницу, потому что я тяну некоторые вещи при помощи переменных окружения. Так, в моих модулей, можно затем включить «конфигурации»:

define(['config', 'jquery'], function(config, $) { ... }); 

Когда я бегу RequireJS строить с помощью Grunt (с grunt-require, который использует r.js), он жалуется, что он не находит config.js. Моя конфигурация сборки выглядит следующим образом:

{ 
    baseUrl: 'js', 
    main: 'app/Main', 
    dir: 'js/build', 
    out: null, 
    modules: { ... }, 
    paths: { ... }, 
    shim: { ... } 
} 

Когда я строю, я получаю:

Error: Error: ENOENT, no such file or directory '/projects/projectname/js/build/config.js 

Как я могу позволить использовать поименованных, встроенные модули, определенные в сочетании с r.js построить?

ответ

1

Установка

paths: { 
    config : 'empty:' 
} 

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

Но это немного сложнее путь, потому что эта опция обычно используются для исключения зависимостей сторонних (например, при разработке некоторых JS библиотеки, основанную на Backbone, было бы лучше, чтобы отделить свою библиотеку от Backbone)

+0

Странно, но это работает. Благодаря! –

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