Как перенести изменения в package.json kentico-cloud-доставки node_modules в bitbucket - PullRequest
2 голосов
/ 25 марта 2019

По словам советника службы технической поддержки Kentico, для того, чтобы мое приложение create-реагировать на приложение было отображено на IE11, мне пришлось изменить следующую строку кода внутри node_modules -> kentico-cloud-delivery -> package.jsonfile:

"main": "./_bundles/kentico-cloud-delivery-sdk.browser.umd.min.js"

После этого изменения мое приложение реагирует на мой локальный IE, но проблема в том, как я могу вставить это изменение в битовую корзину, чтобы приложение реагирования могло быть отображено на IE11 наа также сервер.

В связи с этим обычно мы никогда не помещаем node_modules в bitbucket и не помещаем его в файл .gitignore. Пожалуйста, дайте мне знать, как я могу решить эту проблему.Примечание. Мой проект представляет собой приложение create-реагировать на приложение.

Ответы [ 3 ]

1 голос
/ 25 марта 2019

Я хотел бы связать проблему , где рекомендуемый обходной путь - установить response-scripts загрузить соответствующий пакет и связанную проблему для всего контекста.

Сама проблема вызвана тем, что parse5 библиотека не публикует код ES5 в npm и, следовательно, сборка завершается неудачей.

  • Таким образом, основной причиной этой проблемы является библиотека parse5.

Возможные решения

1) Общая рекомендация из create-response-app i s для обновления до v.2 + , и это также указано на FAQ раздел Kentico Cloud javascript SDK.

2) Если вы хотите разместить обходной путь , несмотря на все рекомендации , потому что это ручное изменение на автоматически управляемый node_modules, вам нужно убедиться, что изменение пакета сохранено на сервере до того, как сборка сделана. Поэтому после npm install / yarn вы должны отредактировать файл package.json в node_modules.

Сценарий (то есть workaround.js, написанный в узле) будет выглядеть так:

const fs = require('fs');
const KCPackagePath = 'node_modules/kentico-cloud-delivery/package.json';
const package = require(KCPackagePath);

package.main = "./_bundles/kentico-cloud-delivery-sdk.browser.umd.min.js"

fs.writeFile(configPath, JSON.stringify(package, undefined, 2), function (err) {
  if (err) {
    console.error('Error while writing to file: ' + KCPackagePath);
    throw err;;
  }
  console.info('Package was successfully updated.')
});

и определите скрипт в package.json в своем приложении от

{
  ...
  "scripts": {
    "workaround": "node workaround.js"
  }
  ...
}
1 голос
/ 25 марта 2019

Точный ответ на вопрос о том, как игнорировать один файл в хранилище и игнорировать остальные в папке, использует ! шаблон формата :

node_modules
!node_modules/kentico-delivery-sdk/package.json

* 1007Команда *! НО! npm install / yarn все равно заменит package.json content

1 голос
/ 25 марта 2019

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

Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...