The Amplify CLI can NOT find command: pull - amazon-s3

I have just installed amplify cli through the command:
npm install #aws-amplify/cli
It mentions it has installed version 4.2.0.
Following the directions of the document below, I tried to run an "Amplify Pull" command to rearrange my files based on the contents on the cloud:
https://aws-amplify.github.io/docs/cli-toolchain/quickstart
However it tells me that The Amplify CLI can NOT find command: pull
Is it correct? Which command should I run instead of this one?

Can you confirm you ran npm install -g #aws-amplify/cli (note the -g flag)? Otherwise, you may have an older global amplify, while your local project has the newer amplify.
which amplify should return something like /usr/local/bin/amplify
amplify --version should return 4.2.0

It seems like changing the F (capital) to f (lowercase) solved my issue:
amplify remove Function
The Amplify CLI can NOT find command: remove Function
Scanning for plugins...
amplify remove function
No resources added for this category
p.s (Function is the name of the category)

Related

How to fix 404 error when installing npm package from GCP artifact registry with yarn?

I'm having an issue with installing an NPM package from GCP.
I was able to upload the package to the artifact registry of GCP by doing the following steps:
Login to my google account (gcloud auth application-default login)
Run
gcloud artifacts print-settings npm \ --project=[my-project]\ --repository=[my-repo] \ --location=us-east1 \ --scope=#[my-scope]
Pasting the output of the previous step in the .npmrc file located in the root of the project.
Refreshing the access token to GCP (npx google-artifactregistry-auth ./.npmrc)
Run yarn publish
My .npmrc file looks like this:
#[my-scope]:registry=https://us-east1-npm.pkg.dev/[my-project]/[my-repo]/
//us-east1-npm.pkg.dev/[my-project]/[my-repo]/:_authToken="[auth-token]"
//us-east1-npm.pkg.dev/[my-project]/[my-repo]/:always-auth=true
However, when I try to install the package on another project by:
Executing steps 1-4 mentioned above
Run yarn add #[my-scope]/[my-package]
I get an 404 error.
Looks like yarn is looking for the package in the default registry:
error An unexpected error occurred: "https://registry.yarnpkg.com/#[my-scope]/#[my-pacakge]/-/#[my-scope]/[my-package]-0.0.1.tgz: Request failed \"404 Not Found\"".
I simply followed the steps mentioned in the installation instructions in GCP but somehow it's not working.
I encountered a similar issue in this post: Can't install a scoped package I published to a npm registry in GCP but this not the exact error I get.
I would appreciate any help regarding this issue.
Thanks in advance!
I just had this problem for a couple of days and the solution is simple, DO NOT USE YARN when publishing. That's it.
I don't know which part of yarn causes this but basically it ignores .npmrc resulting in the tarball to point to the wrong repository, you can check it if you run yarn info. So when publishing to GCP artifact registry one should use npm publish instead.
In both setting up authentication for npm and Managing Node.js packages, Obtaining an access token section the command used is
npx google-artifactregistry-auth
In the same section there is a note that explains how to add flags if you need to change the path of the .npmrc file.
Note: If you need to store your repository settings and credentials in .npmrc files other than the defaults, you can run the credential helper with additional flags.
--repo-config is the .npmrc file with your repository settings. If you don't specify this flag, the default location is the current directory.
--credential-config is the path to the .npmrc file where you want to write the access token. The default is your user .npmrc file.
Instead of:
npx google-artifactregistry-auth ./.npmrc
It could be written as
npx google-artifactregistry-auth --repo-config=pathto/.npmrc --credential-config=pathto/.npmrc
If you are not sure where your file is you can run npm config ls -l | grep config as explained here
Also check you are specifying the correct .npmrc path if it is different than the default registry as shown in Configuring npm and confirm you are trying to install a package from the Node.js package repository with the correct scope, package, tag or version to be completely explicit.

Expo CLI installed through yarn, but not working

So I tried installing expo CLI for my react native project. I tried installing it with npm as shown on the official expo.io website, but it didn't work out. So as per the answers from this stack overflow post. It installed with the command yarn global add expo-cli and I got to see this following output.
success Installed "expo-cli#4.0.13" with binaries:
- expo
- expo-cli
but to verify whether the installation was successful, I ran the command expo whoami and got the following error.
Command 'expo' not found, did you mean:
command 'exo' from snap exoscale-cli (v1.22.0)
command 'expr' from deb coreutils (8.30-3ubuntu2)
command 'expn' from deb sendmail-base (8.15.2-18)
See 'snap info <snapname>' for additional versions.
I'm on Ubuntu 20.04 LTS. I really don't know what's going on here and how can I get to run expo CLI successfully, a little help for your newbie fellow developer here.
Check if expo-cli is properly installed or not using the following code:
yarn global list
Check if expo-cli is added to your path or not using the following code. (Generally, it should be added automatically )
echo $PATH
This will show a list of folders. Look into these folder and try to find expo-cli. If that is not present there then export the path of expo-cli in your .bashrc ( or other dotfile ) using the following
export PATH=$PATH:~/PATH/TO/YOUR/EXPOCLI
Change the "PATH/TO/YOUR/EXPOCLI" to the path of your expo-cli.
If you're running Windows, follow these steps:
Follow this guide to access the PATH environment variable https://www.maketecheasier.com/what-is-the-windows-path/
Add an entry to the Path environment variable that looks like this: C:\Users\<YourUserNameHere>\AppData\Local\Yarn\bin

Vue CLI no longer asks a for feature selection

When creating a new Vue (2.x) project using Vue CLI v4 with the command:
vue create example
...I should be prompted for selecting which features I'd like to enable. For some reason, the CLI jumps straight to creating the project, presumably with features I've selected before.
How can I get the cli to let me specify features again?
It seems your Vue CLI installation is somehow toasted.
As the first fix attempt I'd try deleting the file .vuerc file in your user home directory (~/.vuerc) where Vue CLI stores the saved presets.
If that doesn't help, I'd recommend reinstalling the Vue CLI package globally:
Steps to reinstall Vue CLI globally
# If Vue CLI is installed globally, remove the installation
# Check globally installed packages list with NPM
npm list -g --depth 0
# OR with Yarn
yarn global ls
# Depending on which package manager it has been installed with
# Uninstall with NPM
npm uninstall -g #vue/cli
# OR with Yarn
yarn global remove #vue/cli
# Install currently newest Vue CLI version with NPM
npm install -g #vue/cli
# OR with Yarn
yarn global add #vue/cli
It seems that your project set prompt=false and use JSON to create projects. As far as I know, you should set prompt=true or for each project use should use:
vue create example --default
This should prompt features (>manually select features).
In Vue's Documentation, you can find the create project options creating projects with Vue
In Reactgo page, they showed some features of project creation process How to create Vue project
The issue for me was that I was using Git Bash to vue create app-name instead of Windows CMD.
Once I re-ran the command in Windows CMD the Vue feature selection worked properly.

AppCenter Yarn 1.19 error Incorrect integrity when fetching from the cache

I have a React Native app hosted on Microsoft App center. The builds (both iOS and android) are failing because of yarn 1.19 (error Incorrect integrity when fetching from the cache)
I tried to remove the package-lock.json but it didn't help.
I would like to downgrade yarn or execute the cache clean command but don't know where to execute it.
I have installed the appcenter cli version 2.2.1 and successfully connected to it.
Where could I execute yarn cache clean for example?
I've read I could also create a script but I have no idea where to place it and how it should look like. Should it be both in the ios and android directory? Or in the root? Thank you
I actually noticed that I had a yarn.lock back from the initial commit, even though we are using npm in the team.
In the build logs, there is this line:
/bin/sh -c if [ -f yarn.lock ]; then { yarn install && yarn list --depth=0; } else npm install; fi
So I deleted the yarn.lock file and now it builds successfully using npm!
Not sure whether you build your React app with Azure Devops pipeline. If yes, you can use Command line task to achieve the things you want to do.
If the agent you used is hosted agent during the build, since each build will use a completely new VM, you need to install the AppCenter cli once per build.
Use follow command to install the AppCenter cli:
sudo npm install -g appcenter-cli
Then logging in it:
appcenter login --token {Token}
Here, you need first generate the token with this doc described: Go and login to https://appcenter.ms/ -> Click Self Avatar -> Choose Account Settings -> Click on API Tokens -> Click New API token then select the corresponding the scope for this token.
Copy and use it in this pipeline task. Note: Recommend you store
this token with secret variable for security.
Now, you can execute the clean command: yarn cache clean.
Where to place it and how it should look like?
According to your description, you need place this command line task into the first step, then it could clean the Yarn cache firstly.
Also, because of the image configuration that the hosted agent is using, its installed node.js version is 6.7.0, this does not match the runtime environment for AppCenter cli. You need also run Node.js tool installer task to install node.js v10.0.0.
All of them should look like this:
Should it be both in the ios and android directory?
As I mentioned previously, for Hosted agent, each build will use a completely new VM. So yes, you must execute these two steps firstly in every build.
If what you used is your private agent, since you have installed the AppCenter cli locally, the agent will automatically call the local configuration when running the command line task. At this time, you just need to skip the install command in the command task:
We fixed it by adding a "yarn cache clean" in appcenter-post-clone.sh, you can add this shell script in root of project.
See this docs for details.

How to use yarn with private npm registry in Sonatyoe Nexus OSS?

I ve setup the nexus oss 3 and it looks cool. All my projects are installed by using yarn because of the --pure-lockfile option.
Steps to reproduce the issue:
1. Setup nexus oss 3 with a private npm registry (as in documentation)
2. Disable anonymous access from nexus oss 3 admin panel
3. On a linux server with alpine try to yarn install --pure-lockfile (you must have a package that is hosted on the private repo in package.json)
4. Does not work, return 401 error
I tried everything but i could not manage to make yarn to login to get those packages.
If i use npm install, it works.
Can someone tell me how to make yarn work nexus oss3 using the setup from above?
If npm install is working, then you must have login credentials and repository correctly defined.
Open terminal and run npm login, give your username and password for nexus account. This will create a file ~/.npmrc. Open this file nano ~/.npmrc, output look like
//<repository>:_authToken=NpmToken.<token>
A dummy example:
//test.server.com/repository/npm-group/:_authToken=NpmToken.123456-12345-12345-tok-en0onum
Go to the project directory cd <project_dir>, create a new file .yarnrc, open it nano .yarnrc. Insert the following line, save and exit (Ctrl+O, Ctrl+X) it.
registry "<repository>"
Create another file .npmrc in the same directory <project_dir>. Open, add the following line, save and exsit.
registry=<repository>
always-auth=true
//<repository>:_authToken=NpmToken.<token>
Delete the .npmrc at home directory rm ~/.npmrc.
Now you can download node_modules with yarn or yarn install.
I had same issue with nexus 3 and use this configuration on my .npmrc file:
registry=https://your.nexus.com/repository/some-npm/
always-auth=true
/* basic-auth-token: your user:password in base64 */
_auth=<basic-auth-token>
Hope this help you!
The fact that your requests returns 401 (Unauthorized) means that you should supply credentials when connecting to Nexus.
It is far from being a nice solution but I got it working using
yarn set registry https://user:pwd#your.nexus.host/nexus3/repository/npmjs/
I use yarn 1.4.0 (release candidate). It should also work on 1.3.2, but I cannot test that because 1.3.2 has issues with HTTPS_PROXY env vars.