Does anyone deploy meanio project to AWS Elasticbeanstalk? - amazon-elastic-beanstalk

I've been trying to deploy a meanio project to AWS ElasticBean but failed. Firstly, it's due to wrong dependencies when installing npm with --production. Secondly, it's missing krb5-devel package which I install via config file below:
packages:
yum:
krb5-devel: []
Lastly, I find it's still now working because the default Node.js environment does not include Node and npm in the default search path. So the postinstall script for meanio package cannot install properly.
I've tried to ssh to the server and add them to the default path, and manually install my project. It works. Then I try to add the node path to the config file, but it doesn't work.
option_settings:
- option_name: PATH
value: $PATH:/opt/elasticbeanstalk/node-install/node-v4.2.3-linux-x64/bin
Can anyone suggest how to deploy a meanio project properly?

Related

I am getting an error while deploying my app to azure through git repository

This is the message I am getting Log stream from Azure
This is my package.json
I see that you have an error in your Azure log of Local package.json exists, but node_modules missing. When you set your deployment script, did you remember to run npm install? The deployment on azure is running npm start but has not installed the node modules so you need to install them as well.

Meteor: unable to install mysql in my meteor app

I have cloned one of my local project to another folder. I faced some mysql issues. So, I am trying to install mysql in my meteor app, but it always throwing me a error as 'couldn't install npm mysql package'. I have googled related to this issue, but none of them get resolved. I appreciate if anyone help me.
meteor npm install mysql
As mentioned in the comment:
Try:
npm config set strict-ssl false
and then
npm config set registry http://registry.npmjs.org/

installing a downloaded library from github into vue project instead of just using npm

I'm having no luck installing https://github.com/MadimetjaShika/vuetify-google-autocomplete library using npm. I'm new to using vue, and I'd like to install the prerelease developers build, 2.0.0-Alpha.9, as the old one doesn't work with my version of vuetify.
I've downloaded and extracted the zip file and then used npm install (filepath of the downloaded folder), however when i run the project I get a 'can't find module 'vuetify-google-autocomplete' error. I've only installed packages directly via npm before so I'm not sure what I'm doing wrong.
You can install a specific version of a npm module by using npm tags
npm i vuetify-google-autocomplete#2.0.0-Alpha.9
You are unable to run it because what you downloaded is an npm repo by itself.
Go to the source folder , run the command npm install , then npm run build, copy the dist folder output to your project. How include that as a module and try.

Electron cannot find module mysql

So i've been creating a desktop application using electron. The problem is that when I run my application using npm it doesn't show any error about a missing module but when i package it and run it this error shows
I'm sure that i've install mysql module using npm install -g mysql and npm install mysql in the project directory. It's all working fine when i run the unpacked version of the application
Assuming that you have installed mysql if not please install mysql npm install mysql --save-dev
Hi I also ran in same error I tried everything possible but nothing seems to work , after several hit and trial I was able to fix it and in the end realize that it was all happening because of
When I installed MySQL module I never saved it (--save-dev)
And electron-packager was not able to locate it when I pack it because was not mention in package.json
A solution might locate mysql folder in node_module folder and delete
then install it npm install mysql --save-dev
or manually
add it under dependencies in package.json file

NPM doesn't install module dependencies when deploying a Grunt app to heroku

I'v made a static single page site using grunt. I'm now trying to deploy it to heroku using the heroku-buildpack-nodejs-grunt for node grunt.
Below is a pic of my root directory:
Here's my Gruntfile package.json:
Procfile:
web: node index.html
When I run $ git push heroku master it gets to the Gruntfile and fails:
-----> Found Gruntfile, running grunt heroku:production task
>> Local Npm module "grunt-contrib-uglify" not found. Is it installed?
The above errors proceed to list all local NPM modules as not found. If I list all loadNpmTasks instead of using "load-grunt-tasks", I get the exact same error.
When I $ heroku logs I get:
Starting process with command `node web.js`
Error: Cannot find module '/app/web.js'
Can anyone see where I've gone wrong?
For anyone passing by here, I wasn't able to solve the problem. This is where I got to:
In my Gruntfile, I moved npm modules from devDependencies to dependencies. Heroku was then able to install these dependencies.
However, when Heroku ran the tasks, it stops at the haml task w/ error "You need to have Ruby and Haml installed and in your PATH for this task to work". Adding ruby & haml to the Gruntfile as engines did not work.
The only thing I can think of is that maybe Heroku installs your devDependencies first, tries to run Grunt, but since it didn't install load-grunt-tasks yet, you don't get the grunt.loadNpmTasks( 'grunt-contrib-uglify' ); line (which load-grunt-tasks does for you), and thus Grunt can't find the package.
Can you try changing your Gruntfile to explicitly list out all npm modules using the grunt.loadNpmTasks() method?
EDIT:
Just remembered another thing I had to do:
heroku labs:enable user-env-compile -a myapp
heroku config:set NODE_ENV=production
(Obviously replacing myapp with your Heroku app name.)
This makes Heroku allow user set environment variables and then sets your server to production. Try that, and set your dependencies and devDependencies as you had them originally (just to see if it works).
I am coming pretty late to the game here but I have used a couple methods and thought I would share.
Option 1: Get Heroku to Build
This is not my favorite method because it can take a long time but here it is anyway.
Heroku runs npm install --production when it receives your pushed changes. This only installs the production dependencies.
You don't have to change your environment variables to install your dev dependencies. npm install has a --dev switch to allow you to do that.
npm install --dev
Heroku provides an article on how you can customize your build. Essentially, you can run the above command as a postinstall script in your package.json.
"scripts": {
"start": "node index.js",
"postinstall": "npm install --dev && grunt build"
}
I think this is cleaner than putting dev dependencies in my production section or changing the environment variables back and forth to get my dependencies to build.
Also, I don't use a Procfile. Heroku can run your application by calling npm start (at least it can now almost two years after the OP). So as long as you provide that script (as seen above) Heroku should be able to start your app.
As far as your ruby dependency, I haven't attempted to install a ruby gem in my node apps on Heroku but this SO answer suggests that you use multi buildpack.
Option 2: Deploy Your Dependencies
Some argue that having Heroku build your application is bad form. They suggest that you should push up all of your dependencies. If you are like me and hate the idea of checking in your node_modules directory then you could create a new branch where you force add the node_modules directory and then deploy that branch. In git this looks like:
git checkout -b deploy
git add -f node_modules/
git commit -m "heroku deploy"
git push heroku --force deploy:master
git checkout master
git branch -D deploy
You could obviously make this into a script so that you don't have to type that every time.
Option 3: Do It All Yourself
This is my new favorite way to deploy. Heroku has added support for slug deploys. The previous link is a good read and I highly recommend it. I do this in my automated build from Travis-CI. I have some custom scripts to tar my app and push the slug to Heroku and its fast.
I faced a similar problem with Heroku not installing all of my dependencies, while I had no issue locally. I fixed it by running
heroku config:set USE_NPM_INSTALL=true
into the path, where I deployed my project from. This instructs Heroku to install your dependencies using npm install instead of npm ci, which is the default! From Heroku dev center:
"Heroku uses the lockfiles, either the package-lock.json or yarn.lock, to install the expected dependency tree, so be sure to check those files into git to ensure the same dependency versions across environments. If you are using npm, Heroku will use npm ci to set up the build environment."