Reputation: 43
Having a tough time getting this sorted. I'm using Ansible to provision a precise64 box with a bunch of stuff, including node:
- name: Node.js | Add the node.js PPA
apt_repository: repo=ppa:chris-lea/node.js
tags: nodejs
- name: Node.js | Install nodejs and npm
apt: pkg=nodejs update_cache=yes
tags: nodejs
Once the provisioning is complete, I have Vagrant run a bash script, to run some additional provisioning, including specific npm packages, like gulp:
#!/bin/bash
sudo -u vagrant -i -- npm install gulp -g --no-bin-links --prefix "/project";
It kinda looks like the bash script works:
==> project: [email protected] /project/lib/node_modules/gulp
==> project: ├── [email protected]
==> project: ├── [email protected]
==> project: ├── [email protected]
==> project: ├── [email protected]
==> project: ├── [email protected]
==> project: ├── [email protected] ([email protected])
==> project: ├── [email protected]
==> project: ├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
==> project: ├── [email protected]
==> project: ├── [email protected] ([email protected], [email protected], [email protected])
==> project: ├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
==> project: ├── [email protected] ([email protected], [email protected], [email protected], [email protected])
==> project: └── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
And vagrant seems to think gulp's there:
vagrant@project:/project$ npm -v gulp
1.4.28
Just not executable:
vagrant@project:/project$ gulp
No command 'gulp' found, did you mean:
Command 'gslp' from package 'ghostscript' (main)
gulp: command not found
If I manually install gulp on the guest, then it works:
vagrant@project:/project $ sudo npm install gulp -g
...
vagrant@project:/project$ gulp
[21:05:29] Using gulpfile /project/gulpfile.js
[21:05:29] Starting 'default'...
[21:05:29] Finished 'default' after 40 μs
So, I'm thinking I'm missing a symlink or something? I tried this via bash:
ln -s /usr/lib/node_modules/gulp/bin/gulp.js /usr/bin/gulp;
But, same deal.
Ideas?
Upvotes: 3
Views: 3280
Reputation: 130
another option is to use alias
alias gulp="node_modules/gulp/bin/gulp.js"
(this line can be added to ~/.bashrc)
the purpose of this is to call gulp for given project (as you may have several projects and each with its own gulp)
Upvotes: 1
Reputation: 2694
Your npm install -g
command says your gulp is installed in this directory.
/project/lib/node_modules/gulp
Try symlinking
ln -s /project/lib/node_modules/gulp/bin/gulp.js /usr/bin/gulp
The /project dir is most likely not in your PATH.
Upvotes: 1