fs-extra: источник и пункт назначения не должны совпадать.(Cordova) - PullRequest
0 голосов
/ 12 марта 2019

Я получаю сообщение об ошибке при сборке с помощью cordova.

Error: Source and destination must not be the same.

Система сборки:

Ionic:
  ionic (cli):        4.10.1
  ionic framework:    ionic-angular 3.9.2
  @ionic/app-scripts: 3.1.11

Cordova:
  cordova (cli):      8.1.2 (cordova-lib@8.1.1)
  platforms:          "cordova-android": "8.0.0"

System:
  Android SDK Tools:  26.1.1
  NodeJS:             10.15.3
  npm:                6.4.1
  OS:                 Windows 10

Команда:

ionic cordova build android

или

cordova build --release

Сведения об ошибке:

Error: Source and destination must not be the same.
    at checkPaths (C:\Jenkins\workspace\%PROJECTNAME%\node_modules\fs-extra\lib\copy-sync\copy-sync.js:185:11)
    at Object.copySync (C:\Jenkins\workspace\%PROJECTNAME%\node_modules\fs-extra\lib\copy-sync\copy-sync.js:25:20)
    at updatePathWithStats (C:\Jenkins\workspace\%PROJECTNAME%\node_modules\cordova-common\src\FileUpdater.js:103:24)
    at C:\Jenkins\workspace\%PROJECTNAME%\node_modules\cordova-common\src\FileUpdater.js:298:19
    at Array.forEach (<anonymous>)
    at Object.mergeAndUpdateDir (C:\Jenkins\workspace\%PROJECTNAME%\node_modules\cordova-common\src\FileUpdater.js:296:33)
    at updateWww (C:\Jenkins\workspace\%PROJECTNAME%\platforms\android\cordova\lib\prepare.js:157:17)
    at Api.module.exports.prepare (C:\Jenkins\workspace\%PROJECTNAME%\platforms\android\cordova\lib\prepare.js:56:19)
    at Api.prepare (C:\Jenkins\workspace\%PROJECTNAME%\platforms\android\cordova\Api.js:177:45)
    at C:\Jenkins\workspace\%PROJECTNAME%\node_modules\cordova\node_modules\cordova-lib\src\cordova\prepare.js:105:36

Кто-нибудь сталкивается с той же ошибкой или имеет представление о том, что не так?

Дополнительная информация: Я всегда проверяю репозиторий git на пустое место.папка.Это означает: это трудно чистить каждую сборку.Нет node_modules и платформы, и т. Д. (Платформа rm и т. Д. Бесполезна)

Ответы [ 3 ]

2 голосов
/ 14 марта 2019

Сначала удалите это вручную:

node_modules папка

package-lock.json файл

platform > android папка

enter image description here

enter image description here

затем используйте эту рекомендацию:

1 => npm rm -rf node_modules package-lock.json
2 => npm cache clear --force
3 => ionic cordova platform add android@8.0.0
4 => ionic cordova prepare android
5 => ionic cordova run android
0 голосов
/ 19 марта 2019

Проблема в fs-extra методе checkPaths операции копирования.Есть проверка state.ino (inode) узла fs, который оценивается как число.Bigint также поддерживается, но не включен.Это причина того, что сравнение может потерпеть неудачу.Потому что max-safe-integer в JavaScript является 53-битным.Возможно также проблема с символической ссылкой.

Посмотреть / Присоединиться: https://github.com/jprichardson/node-fs-extra/issues/657

Почему Cordova-Android 8.0.0?Потому что https://github.com/apache/cordova-common/blob/master/RELEASENOTES.md.FS-Extra является новым в этой версии.

0 голосов
/ 13 марта 2019

Я не знаю, правильный ли это ответ, но это может быть неправильная настройка в файле cordova build.json (если он у вас есть).

Поскольку вы используете Jenkins, возможно, у вас там есть неправильные настройки, например, отсутствуют зависимости или что-то в этом роде.

Вы также можете попробовать удалить платформу и добавить ее снова, чтобы получить последнюю версию и совместимость.

cordova platform remove android
cordova platform add android@8.0.0

Вы можете проверить, есть ли у вас устаревший fs-extra (хотя я не думаю, что это проблема) и обновить Ionic.

Вы можете попытаться восстановить ваши node_modules.

Я надеюсь, что один из этих шагов поможет.

...