Как я могу запретить оптимизатору Require.js включать текстовый плагин в оптимизированные файлы?
tl;dr: How do I keep the text.js plugin out of my optimized file when all my text dependencies are inlined?
Я используюОптимизатор Require.js (через узел) для оптимизации некоторых файлов JS в моем проекте. Я используютекстовый плагин загрузить текстовые зависимости (HTML шаблоны, CSS). У меня есть модуль, который я хочу оптимизировать, включая его зависимости, например:
<code>define(['text!core/core.css'], function(styles) { // do setup stuff, return an object }); </code>
Документы Require.js говорят, чтоcore/core.css
файл будет встроен при запускеr.js
оптимизатор, который я вызываю так:
<code>$ r.js -o baseUrl=./src name=core out=release/test.js Tracing dependencies for: core Uglifying file: c:/path/release/test.js c:/path/release/test.js ---------------- c:/path/src/text.js text!core/core.css c:/path/src/core.js </code>
Хорошая новость в том, что это работает. Когда я смотрю на оптимизированный файл, я вижу встроенный текст, что-то вроде этого:
<code>define("text!core/core.css",[],function(){return"some CSS text"}), define("core",["text!core/core.css"],function(a){ ... }) </code>
Плохая новость заключается в том, что плагин text.js также включен - он добавляет около 3 КБ и состоит из (насколько я могу судить) теперь совершенно ненужного кода для загрузки внешних текстовых файлов. Я знаю, что 3K не так много, но я стараюсь поддерживать мой код высокооптимизированным, и, насколько я понимаю, код для текстового плагина совсем не нужен, если мои текстовые зависимости встроены. Я могу сохранить текстовый плагин, добавивexclude=text
к моемуr.js
вызов, но если я это сделаю, я получаю сообщение об ошибке, когда пытаюсь использовать оптимизированный код в браузере, говоря, что плагин text.js не может быть загружен.
Так:
Is there any reason the text.js plugin is actually required here?
If not, is there a configuration option for r.js
that can fix this behavior, or
Is there an easy shim for the text.js plugin that I can include to convince Require.js that the unnecessary plugin is loaded?