предварительная обработка jspm (внедрение настроек для целевой среды) при связывании

Есть ли способ предварительной обработки файлов .js (т. е. вставки конкретных настроек среды) при связывании с использованием buildStatic?


person CraigM    schedule 03.10.2015    source источник


Ответы (1)


Я не знаю, как предварительно обрабатывать js-файлы во время сборки, но вы можете иметь разные файлы/модули для разных сред и использовать JS API для замены версии для разработки на производственную:

gulp.task('jspm', function() {
  var builder = new jspm.Builder();

  function production(builder) {
    var systemNormalize = builder.loader.normalize;
    builder.loader.normalize = function(name, parentName, parentAddress) {
      if (name === 'ember') name = 'ember/ember.prod';
      if (name === './app-config.dev') name = './app-config.prod';

      return systemNormalize.call(this, name, parentName, parentAddress);
    };
  }

  production(builder);

  return builder.loadConfig('./config.js')
    .then(function() {
      return builder.buildStatic('app/main', 'dist/app.min.js', { sourceMaps: false, minify: false, mangle: false});
    });
});

app-config.dev.js и app-config.prod.js — это модули, которые вы используете во всем приложении и которые предоставляют настройки для вашей среды. В своем коде вы всегда должны импортировать app-config.dev. Подробнее об этом рабочем процессе читайте в моем блоге: Как использовать хуки SystemJS для создания рабочей версии вашего приложения

person Oleksii Rudenko    schedule 03.10.2015
comment
Большое спасибо - это здорово. - person CraigM; 05.10.2015