I'm trying a first deploy for a dokku application.
I'm getting
Both npm and yarn have created lockfiles for this application,
but only one can be used to install dependencies. Installing
dependencies using the wrong package manager can result in missing
packages or subtle bugs in production.
- To use npm to install your application's dependencies please delete
the yarn.lock file.
$ git rm yarn.lock
- To use yarn to install your application's dependences please delete
the package-lock.json file.
$ git rm package-lock.json
I had initially created by project with yarn, but there was also a package-lock.json file. Perhaps I used npm one time. I don't remember.
I followed the instructions and git rm package-lock.json and tried again.
Same error
I then tried removing node_modules and reinstalling with yarn
Same error
So, I did git rm yarn.lock, removed node_modules and installed with npm install.
Same error
I then tried to
repo:purge-cache <app>
repo:gc <app>
and tried again. You guessed it
Same error
Any suggestions? I'm under pressure to deploy something and I'm stuck here.
Did you actually commit the changes removing the files? This is an error caused by the contents of your repository, not by Dokku.
Related
I am cloning the Symfony project form git repository. Project is using webpack encore.
git clone
composer install
npm install
but this produce error in node-sass
Try to rebuild if npm package creates error
npm rebuild node-sass
the problem was solved by running npm install by host machine, because composer install was running also in host machine
while I download ghost ,and unzip it to new_ghost ,then i meet this error
➜ new_ghost npm install --production
npm WARN cannot run in wd ghost#0.11.2 node core/server/utils/npm/preinstall.js (wd=/var/www/new_ghost)
[1] 14831 killed npm install --production
If you look in package.json you will see the preinstall script. It is looking for node. If you are working on Ubuntu, you might need to change that to nodejs. Another thing to try is:
npm cache clean
rm -rf node_modules
npm install --production
npm start --production
Another possibility is if you are using a version of node that it doesn't support. In that case you can disable the version check:
GHOST_NODE_VERSION_CHECK=false npm install --production
GHOST_NODE_VERSION_CHECK=false npm start --production
I had the same problem.
As mentioned by the Ghost folks here http://support.ghost.org/troubleshooting/#npm-start-issues, you should enable or increase the swap size.
If you don't have swap enabled, you can follow the guide here: https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-12-04
I need to install npm dependencies described on my packages.json file manually (by manually I mean with a command like npm install or mrt install, that doesn't require to start the app).
I know that meteor-npm creates the npm directory inside packages and that when I start the app using mrt or meteor the npm modules get downloaded.
But I'm writing a test script and I need the modules to be installed before running the tests so I would need to install them as I install standard meteorite modules with mrt install.
In theory this is very easy, because you could just run npm install PACKAGENAME in your project directory. However, this would of course mess up meteor, which will try to interpret the new files as meteor files.
Instead, you have two options:
install in a super directory (they will be found): cd .. && npm install PACKAGENAME
install packages globally: npm install -g PACKAGENAME
I've installed grunt using sudo npm install grunt and now I can't remove it.
I've tried:
$ sudo npm uninstall grunt
But it gives me a WARN:
npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
I've also tried rm, remove and unlink. and -g options, but those give:
npm WARN uninstall not installed in /usr/lib/node_modules: "grunt"
But I still can run grunt from command line.
EDIT:
$ whereis grunt
grunt: /usr/local/bin/grunt
$ file /usr/local/bin/grunt
/usr/local/bin/grunt: symbolic link to `../lib/node_modules/grunt/bin/grunt'
$ ls /usr/local/lib/node_modules
grunt jshint
$ ls /usr/lib/node_modules
bower csslint devtools-terminal npm plato
Why I have 2 directories with npm? Is it safe to just delete them?
EDITOR NOTE:
This question was asked over 5 years ago as How to uninstall npm package. It's been a very useful question favourited by many, who found a solution to their problem, so I'm changing it back from a recent edit that called it How to uninstall grunt package, because it requires the same procedure as any other npm package.
To uninstall a npm module from project node_modules folder, run:
npm uninstall <module> --save
Note that npm modules should be uninstalled from the same directory that contains the node_modules folder when running this command. The --save option will also remove it from your package.json
One can also remove a local dependency/module installation, by deleting its directory from the local node_modules folder. Yes, it's safe to delete dependencies there.
To uninstall a npm module that was installed globally, run:
npm uninstall -g <module>
It doesn't matter where you run this command from.
To install a npm module, run: (only meant as reference)
npm install <module>
...or:
npm install (if there's a package.json file at the root of your project)
...or:
npm install <module> --save-dev (if you want to add a minimum version to the dependency)
Good things to know about Grunt:
If you have installed grunt stable before February 18, 2013 (the day grunt v0.4.x was released), you might have an older grunt version still lingering in your system. That's because grunt versions lower than 0.4.x were installed globally, which caused a lot of pain when upgrading/maintaining versions.
grunt and grunt-cli are two different things.
grunt (without the "cli") is usually installed at the project level (when listed as a devDependency in package.json) by running npm install. That's also known as a local installation.
grunt-cli is the underlying foundation on which local versions of grunt run in different projects/folders. It can be installed locally, but is more useful when installed globally, once.
grunt is only installed locally (by running npm install grunt).
grunt-cli is preferably installed globally (by running npm install -g grunt-cli). grunt-cli official npm page still warns against installing grunt (without the cli) globally.
If you want to uninstall the global installation of grunt-cli, run npm uninstall -g grunt-cli. This issue on gruntjs's project supports this procedure.
Never install grunt globally (by running npm install -g grunt).
On npm and sudo
sudo doesn't play well with npm. Only use it if you must. Below are two quotes on the advantages and disadvantages on its use:
Quoting Isaac Z. Schlueter on his Introduction to npm article:
I strongly encourage you not to do package management with sudo!
Packages can run arbitrary scripts, which makes sudoing a package manager command
as safe as a chainsaw haircut. Sure, it's fast and definitely going to cut
through any obstacles, but you might actually want that obstacle to stay there.
I recommend doing this once instead:
sudo chown -R $USER /usr/local
That sets your user account as the owner of the /usr/local directory, so that you can
just issue normal commands in there. Then you won't ever have to use sudo when you
install node or issue npm commands.
It's much better this way. /usr/local is supposed to be the stuff you installed, after all.
Yet another catch mentioned by Andrei Karpushonak:
There are certain security concerns and functionality limitations
regarding changing the ownership of /usr/local to the current user:
if there is another user on the machine who could use global
npm packages - do not change the ownership of /usr/local
https://apple.stackexchange.com/questions/1393/are-my-permissions-for-usr-local-correct
https://askubuntu.com/questions/261326/is-it-safe-to-chown-usr-local
Having said that, if you want to install global module without using sudo,
I don't see any better solution (from pragmatic point of view) than mentioned.
Security vs easy of use is very broad topic, and there is no easy answer for that
- it just depends on your requirements.
This same thing happened with me. On doing
which grunt
I got path /usr/local/bin/. There was a folder grunt inside this.
But on running command (even from within the path /usr/local/bin/):
sudo npm uninstall -g grunt
Got the warning uninstall not installed
Solution: turns out that I installed using command
sudo npm install -g grunt-cli
And while trying to remove was just typing grunt.
So once I run
sudo npm uninstall -g grunt-cli
grunt got removed.
Although you have mention in question that you run
sudo npm install grunt
But still check if you are also doing the same mistake and run it with grunt-cli.
In some cases it may be necessary to use npm's "remove a package," feature.
npm - Remove a package
Description
"This uninstalls a package, completely removing everything npm installed on its behalf."
On your third code block, you posted this message:
npm WARN uninstall not installed in /home/kuba/projects/node_modules: "grunt-cli"
I've found that using the
which grunt
or the
whereis grunt
commands in the CLI/console provides an incomplete and confusing output.
Both of these commands will return the path of the grunt-cli installation, but return this simply as grunt.
Also using,
which grunt-cli
or the
whereis grunt-cli
fails to return any output to the CLI console. I believe that this is a namespace issue/feature with npm.
I also had a situation where I was unable to uninstall the grunt-cli with npm's uninstall function as recommended by other contributors above.
The only thing that worked for me was using the npm remove function with the program's full name as demonstrated below.
npm rm -g grunt-cli
This should return the following to your console.
unbuild grunt-cli##.##.#
Good Luck!
Use first this one
which grunt-cli
Or
which grunt
And this will show you the path to the module
In my case it was in the /usr/local/bin/
Once I got into the bin folder I just wrote
sudo rm grunt
And that was the end of it :)
If it's installed globally add -g to uninstall and probably you will need sudo
sudo npm uninstall -g grunt
Running the accepted solution's commands didn't work for me. Running which grunt would result in /usr/local/bin/grunt, but normal (or sudo) npm uninstall -g grunt-cli had no effect.
This is the command that finally worked for me:
sudo npm uninstall grunt-cli -g --prefix=/usr/local
Thanks to gengxuelei on github for the solution!
I cannot get grunt to work at all on Windows 7. Following the instructions on the Grunt website (http://gruntjs.com/getting-started) I've run:
npm uninstall -g grunt-cli
npm uninstall grunt
npm uninstall -g grunt-init
git clone git#github.com:gruntjs/grunt-init-jquery.git c:/Users/me/.grunt-init/jquery
npm install -g grunt-cli
grunt-init jquery
npm install .
After that, running "grunt" produces the following output:
grunt-cli: The grunt command line interface. (v0.1.9)
Fatal error: Unable to find local grunt.
If you're seeing this message, either a Gruntfile wasn't found or grunt
hasn't been installed locally to your project. For more information about
installing and configuring grunt, please see the Getting Started guide:
http://gruntjs.com/getting-started
The output of npm list grunt is:
npm WARN package.json consolidate#0.9.1 No repository field.
npm WARN package.json jquery-plugin#0.0.0-ignored No repository field.
npm WARN package.json passport-local-examples-login#0.0.0 No repository field.
npm WARN package.json receiptly#0.0.1 No repository field.
npm WARN package.json cookie-signature#1.0.1 No repository field.
npm WARN package.json fresh#0.1.0 No repository field.
npm WARN package.json methods#0.0.1 No repository field.
npm WARN package.json range-parser#0.0.4 No repository field.
npm WARN package.json send#0.1.0 No repository field.
npm WARN package.json pause#0.0.1 No repository field.
npm WARN package.json policyfile#0.0.4 'repositories' (plural) Not supported.
npm WARN package.json Please pick one as the 'repository' field
npm WARN package.json eyes#0.1.8 No repository field.
npm WARN package.json bytes#0.2.0 No repository field.
npm WARN package.json dateformat#1.0.2-1.2.3 No repository field.
npm WARN package.json uid2#0.0.2 No repository field.
C:\Users\me\AppData\Roaming\npm
└─┬ grunt-init#0.2.1
└── grunt#0.4.1
Running "npm install grunt" in the current directory gives the same error when running grunt.
Any thoughts? My understanding is that grunt-cli is meant to look for a local grunt install, but I can't work out why it can't find it.
I know its been 2 years since this question was asked. However if someone wants in future:
I got the exact same issue. And I got this fixed by installing grunt locally. As per grunt site,
Note that installing grunt-cli does not install the Grunt task runner!
The job of the Grunt CLI is simple: run the version of Grunt which has
been installed next to a Gruntfile. This allows multiple versions of
Grunt to be installed on the same machine simultaneously.
So I just got it working by installing Grunt locally.
npm install grunt --save-dev
--save : adds it to your package.json.
-dev: adds it as a dev dependency.
There must be a Gruntfile.js located in the directory you run the command from. Also double check that 'npm install grunt' actually gave you a node_modules directory with a sub directory called grunt.
You should install grunt in GUI mode.
Open node.js cmd prompt then open the root folder and run the below commands
npm install ( once it done you can able to see node_modules folder in the root folder)
npm install –g grunt-cli (change the version from ("version": "minified" to Current release("version":"1.11"); you should replace with minified once you run build)
grunt build:full
Note: Version has to change when running grunt very first time.
if the above answer do not works then you can try by using this
rm -rf node_modules/ && npm cache clean && npm install