environmental variable not being read (NPM) - npm

So I have a project running with nodejs, and an env file using multiple variables. For some reason one of these does not seem to be working though.
Here the code should be printing out the port and namespace/ip of that the env file should have specified
`==> API is running on port ${process.env.API_PORT}`,
'\n',
`==> Send requests to http://${process.env.API_HOST}:${process.env.API_PORT}`
But for some reason it is only finding the host, as this is what the console actually outputs
==> API is running on port undefined
==> Send requests to http://127.0.0.1:undefined
Here is the .env file entries for these two variables
API_PORT=8080
API_HOST=127.0.0.1
The only guidance I have found so far was that I had to include require('dotenv').config(); but this did not resolve anything either.
What could be blocking the API_PORT variable?
UPDATE: So it seems when I host the server using npm, it works, but when I try to run code coverage over it using chai is when this error pops up (still npm run test).

Fast solution at the moment
in your package.json
Put your envs in your scripts
"scripts": {
"dev": "API_PORT=8080 API_HOST=127.0.0.1 node index.js",
"test": "your script here"
},
npm run dev should work fine.

Related

Why am I getting 'Cannot GET' in localhost for Vue npm run serve

I installed Vite build tool for Vue and when I ran it (npm run serve), I got an error that generated the following message
"Missing script: "serve"".
After a little research, I learned that my package.json was missing the serve key.
After I added it ("serve": "vite preview") and ran it, I received the following error in the browser
"Cannot GET /"
preview is for when your app is already built (with npm run build), it's to check the static result. At the end, serve is the name that was used with Vue2's CLI for preview.
If you want to work locally with it, simply run npm run dev.
More info available on Vite's documentation.

How to run a development server in Laravel Mix (standalone project)

I'm trying to run a server to see my project on browser, the only way i can do it is running npx mix watch --hot, so after that my project start running at localhost:8080.
But the above command enable hot reload, i would like to know if there is some specific command to just run the server, without enabling hot reloading.
I tried npm mix watch but it not starts the server, just watch the files.
Tried calling manually webpack server with:
./node_modules/.bin/webpack serve --config="./node_modules/laravel-mix/setup/webpack.config.js"
This works (the server starts at localhost:8080 as well) but somehow it activates hot reloading too, idk why.
So, there is some way to just start the server? Without enabling hot reloading?
Here is my webpack.mix.js file:
let mix = require('laravel-mix');
mix.sass('src/scss/app.scss', 'dist/css/')
.js('src/js/app.js', 'dist/js/').react()
.setPublicPath('public');
My package.json has just the default script:
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
If you're using Composer you can run php artisan serve, this will start a local php server and serve your web pages to the browser Laravel installation.

Nuxt deployment error: server resources are not available

To deploy our nuxt website in ssr mode we first build and unit test website in the bitbucket pipeline and if tests are green we copy build files from bitbucket servers to our production server and trigger start.
The problem is that Nuxt documentation says nothing about which exact files are required on the server.
currently we are using:
.nuxt/
server/
static/
nuxt.config.js
Sometimes after adding functionality to the website, deployed version throws an error:
Error: Server resources are not available!
At the same time local version works fine.
Also running production server locally on the project works.
Error kinda hints that some paths picked up incorrectly by nuxt.. but the directory structure is completely the same.
Any ideas why this happens and how to fix that?
If errors also mentions, Please check "file path"/.nuxt/dist/server existence.
Then on the terminal
cd .nuxt
check if 'dist' folder exists. If it does not exists,
go back and npm run build. this will generate the 'dist' folder for use.
If Still facing the issue, try,
npm install --save nuxt
npm install --save vue-server-renderer
Try adding: dev: process.env.NODE_ENV === 'DEV' to nuxt.config.js

How to resolve clipboard error while deploying vuejs app on ubuntu server

I am deploying a vuejs app on my server.we have EC2 instance with ubuntu 16.04,As of now I am just deploying my test project but when I go running serve command like sudo serve -s dist but it is throwing an error which is: ERROR: Cannot copy to clipboard: Command failed: xsel --clipboard --input
xsel: Can't open display: (null)
: Inappropriate ioctl for device
I don't know this error is caused by ubuntu or vuejs please help me solve it.
I have followed these cammands so far.
First installed vue cli using
npm install -g #vue/cli
Then created a hello world app using
vue create helloWorld
Now run serve command
npm run serve
It was showing me a message like:
App running at:
- Local: http://localhost:8081/
- Network: http://172.31.16.66:8081/
Now i have created a build to run an app on the production server
npm run build
So my build was created successfully
i run command to run the app on the live server
serve -s dist
And it is throwing an error which is not solving by me so far
WARNING: Checking for updates failed (use--debugto see full error)
ERROR: Cannot copy to clipboard: Command failed: xsel --clipboard --input
xsel: Can't open display: (null)
: Inappropriate ioctl for device
I am also attaching screenshot below.
As you can see, there is an X11 dependency with the serve module - which means you need an xserver(display) for it to work.
Alternatively, (highly recommended) you could use a high performance HTTP server like nginx, apache etc. instead.
All you need is to copy your dist folder to your instance, and point your virtual server block to the dist dir, and restart your HTTP server - BAM! you're up and running.
Cheers!
I had the same issue and I solved it by adding "-n" option to serve.
"-n, --no-clipboard Do not copy the local address to the clipboard"

PM2 couldn't start keystone

I cant start keystone on pm2. pm2 could not read "COOKIE_SECRET" from .env file.
I did set an environment variable in pm2 config file but I got the error again.
what shall I do ?
First thing you can check is the NODE_ENV variable setup as development or production, or the --env command line that you are using. Reference:
http://pm2.keymetrics.io/docs/usage/environment/
Kindly provide the error message encountered so that there are more information.
Usually one can use "pm2 start keystone.js" to start keystone without problem.