[ https://issues.apache.org/jira/browse/CB-13937?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16510485#comment-16510485 ]
Raphael commented on CB-13937: ------------------------------ This is almost expected behavior. For comparison: _npm install lodash_ will install from the local folder _lodash_ *iff* it contains a package.json. So in the best case, we should use the local folder if it looks like a platform and _cordova-ios_ otherwise. > `cordova platform add ios` fails if `ios` folder is present > ----------------------------------------------------------- > > Key: CB-13937 > URL: https://issues.apache.org/jira/browse/CB-13937 > Project: Apache Cordova > Issue Type: Bug > Components: cordova-lib > Affects Versions: 8.0.0 > Reporter: Jan Piotrowski (Sujan) > Priority: Major > > If there is a folder called like the platform you want to install, it will > fail. > See here for an example where an `ios` folder was present before executing > `cordova platform add ios`: > {code} > ``` > MacBook-Pro:project sujan$ cordova platform add ios > (node:3439) UnhandledPromiseRejectionWarning: CordovaError: Error: npm: > Command failed with exit code 1 Error output: > npm ERR! code ENOLOCAL > npm ERR! Could not install from "ios" as it does not contain a package.json > file. > npm ERR! A complete log of this run can be found in: > npm ERR! /Users/sujan/.npm/_logs/2018-03-01T19_56_48_106Z-debug.log > at > /Users/sujan/.nvm/versions/node/v9.4.0/lib/node_modules/cordova/node_modules/cordova-fetch/index.js:104:29 > at _rejected > (/Users/sujan/.nvm/versions/node/v9.4.0/lib/node_modules/cordova/node_modules/q/q.js:864:24) > at > /Users/sujan/.nvm/versions/node/v9.4.0/lib/node_modules/cordova/node_modules/q/q.js:890:30 > at Promise.when > (/Users/sujan/.nvm/versions/node/v9.4.0/lib/node_modules/cordova/node_modules/q/q.js:1142:31) > at Promise.promise.promiseDispatch > (/Users/sujan/.nvm/versions/node/v9.4.0/lib/node_modules/cordova/node_modules/q/q.js:808:41) > at > /Users/sujan/.nvm/versions/node/v9.4.0/lib/node_modules/cordova/node_modules/q/q.js:624:44 > at runSingle > (/Users/sujan/.nvm/versions/node/v9.4.0/lib/node_modules/cordova/node_modules/q/q.js:137:13) > at flush > (/Users/sujan/.nvm/versions/node/v9.4.0/lib/node_modules/cordova/node_modules/q/q.js:125:13) > at process._tickCallback (internal/process/next_tick.js:150:11) > (node:3439) UnhandledPromiseRejectionWarning: Unhandled promise rejection. > This error originated either by throwing inside of an async function without > a catch block, or by rejecting a promise which was not handled with .catch(). > (rejection id: 1) > (node:3439) [DEP0018] DeprecationWarning: Unhandled promise rejections are > deprecated. In the future, promise rejections that are not handled will > terminate the Node.js process with a non-zero exit code. > {code} > When renaming the `ios` folder to `_ios` it all works as expected: > {code} > MacBook-Pro:project sujan$ cordova platform add ios > Using cordova-fetch for cordova-ios@~4.5.4 > Adding ios project... > Creating Cordova project for the iOS platform: > Path: platforms/ios > ... > {code} > Is this expected behavior? > Is there a simple way to work around this without removing or renaming the > folder? -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org