Использование Javascript как крючка для проекта cordova в Visual Studio 2017

У меня есть проект cordova, работающий в Visual Studio. Перед процессом сборки я хочу использовать функцию hook, чтобы скопировать дополнительный файл gradle в соответствующую папку платформ. Для копирования этого файла я использую простой файл javascript. Я хочу использовать js, потому что он не зависит от ОС.

Я использую следующий код из здесь :

  source = "D:\myProject\config\build-extras.gradle";
  target = "D:\myProject\platforms\android\build-extras.gradle";

  var fs = require('fs');
  var cbCalled = false;

  var rd = fs.createReadStream(source);
  rd.on("error", function(err) {
    done(err);
  });

  var wr = fs.createWriteStream(target);
  wr.on("error", function(err) {
    done(err);
  });

  wr.on("close", function(ex) {
    done();
  });
  rd.pipe(wr);

  function done(err) {
    if (!cbCalled) {
        console.log("Something wrong with copy of build-extras.gradle: " + err);
      cbCalled = true;
    }
  }

Когда я запускаю этот код в консоли с узлом, сценарий копирует файл, как ожидалось. Однако, когда я включаю тот же скрипт в свой файл config.xml кордовы, скрипт делает что-то другое: он создает файл с определенным именем, но файл всегда пуст. Кто-нибудь знает, что здесь не так?

Спасибо, Питер

javascript,cordova,hook,

1

Ответов: 0

Использование Javascript как крючка для проекта cordova в Visual Studio 2017

У меня есть проект cordova, работающий в Visual Studio. Перед процессом сборки я хочу использовать функцию hook, чтобы скопировать дополнительный файл gradle в соответствующую папку платформ. Для копирования этого файла я использую простой файл javascript. Я хочу использовать js, потому что он не зависит от ОС.

Я использую следующий код из здесь :

  source = "D:\myProject\config\build-extras.gradle";
  target = "D:\myProject\platforms\android\build-extras.gradle";

  var fs = require('fs');
  var cbCalled = false;

  var rd = fs.createReadStream(source);
  rd.on("error", function(err) {
    done(err);
  });

  var wr = fs.createWriteStream(target);
  wr.on("error", function(err) {
    done(err);
  });

  wr.on("close", function(ex) {
    done();
  });
  rd.pipe(wr);

  function done(err) {
    if (!cbCalled) {
        console.log("Something wrong with copy of build-extras.gradle: " + err);
      cbCalled = true;
    }
  }

Когда я запускаю этот код в консоли с узлом, сценарий копирует файл, как ожидалось. Однако, когда я включаю тот же скрипт в свой файл config.xml кордовы, скрипт делает что-то другое: он создает файл с определенным именем, но файл всегда пуст. Кто-нибудь знает, что здесь не так?

Спасибо, Питер

01JavaScript, Cordova, крюк,
Похожие вопросы