pomeo/node-insales

Проблемы с установкой js2xml на windows

VladimirIvanin opened this issue · 4 comments

Возможно использовать другой пакет для работы с xml?
Например:
xml2js

Так как установка js2xml тянет за собой пакет node-gyp, который приводит к данной ошибке: http://prntscr.com/bmkyns.
Чтобы пофиксить ошибку нужно установить много софта, вплоть до python.
Подробнее тут:
https://www.robertkehoe.com/2015/03/fix-node-gyp-rebuild-error-on-windows/

pomeo commented

xml2js это совсем другой пакет, если бы его можно использовать, я бы его использовал. Тем более он в node_modules есть, он вместе с restler ставится.
Не js2xml тянет node-gyp, а libxmljs пытается скомпилироваться.
Поэтому придётся вам ставить весь софт который нужен для компиляции.

На примере post запроса попробовал сделать конвертацию через xml2js:

var _xml2js = require('xml2js');

var xmlBuilder = new _xml2js.Builder();

function post(conn) {
  if (conn.obj !== undefined) {
    var _json = {}
    _json[Object.keys(conn.obj)[0]] = conn.obj[Object.keys(conn.obj)[0]]
    var jsToXml = xmlBuilder.buildObject(_json);
    opt.data = jsToXml.toString();
  }

  var p = _restler2.default.post('https://' + conn.id + ':' + conn.token + '@' + conn.url + '/admin/' + conn.api + '.xml', opt);
  return new Promise(function (resolve, reject) {
    (0, _request.request)(p).then(resolve).catch(reject);
  });
}

P.s. Большое спасибо за API! Есть желание написать на основе вашего API аналог insup.
И так как пользователей windows среди верстальщиков куча, хочется обеспечить совместимость с windows.
Буду признателен если всё же получится использовать xml2js вместо js2xml.

pomeo commented

Теперь вижу, раньше xml2js не умел строить xml. Переделаю через пару недель, как время будет.

Спасибо!
Вдохновился вот этим пакетом для shopify gulp-shopify-upload.
А ваша разработка единственная для node.js, с которой можно это реализовать.
Если не планировали, то как будет время попробую написать методы для работы с ассетами.