首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fs-extra:源和目标不能相同。(科尔多瓦)

fs-extra:源和目标不能相同。(科尔多瓦)
EN

Stack Overflow用户
提问于 2019-03-13 01:23:38
回答 4查看 4.2K关注 0票数 3

我在使用cordova构建时遇到错误。

代码语言:javascript
复制
Error: Source and destination must not be the same.

构建系统:

代码语言:javascript
复制
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

命令:

代码语言:javascript
复制
ionic cordova build android

或者

代码语言:javascript
复制
cordova build --release

错误-详细信息:

代码语言:javascript
复制
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平台等无用)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-03-19 23:18:40

问题是拷贝操作的fs-extra checkPaths方法。存在对节点fs的state.ino (inode)的检查,其被评估为number。Bigint也受支持,但未启用。这就是比较失败的原因。因为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是此版本中的新功能。

票数 2
EN

Stack Overflow用户

发布于 2019-03-13 12:47:49

我不知道这是不是正确的答案,但它可能是一个错误的设置在科尔多瓦build.json (如果你有一个)。

由于您使用的是Jenkins,因此您可能有一些错误的设置,比如缺少依赖项或诸如此类的东西。

您还可以尝试删除该平台,然后重新添加,以获得最新版本和兼容性。

代码语言:javascript
复制
cordova platform remove android
cordova platform add android@8.0.0

你可以检查你是否有一个过时的fs-extra (尽管我不认为这是问题所在)并更新Ionic。

您可以尝试恢复您的node_modules。

我希望这些步骤中的一个能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2019-03-15 03:53:07

首先,手动删除它:

node_modules文件夹

package-lock.json文件

platform > android文件夹

然后使用这个推荐:

代码语言:javascript
复制
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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55127362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档