Also added stubs for Server.address()
This was done to prevent crashes in some popular frameworks like express
Supports both CommonJS and the new ES Modules system syntax e.g:
app.js:
const http = require('http')
app.mjs:
import http from "http"
Usage on Node 14.16.x and higher:
{
"type": "external",
"processes": {"spare": 0},
"working_directory": '/project',
"executable": "/usr/bin/env",
"arguments": [
"node",
"--loader",
"unit-http/require_shim.mjs"
"--require",
"unit-http/require_shim",
"app.js"
]
}
Usage on Node 14.15.x and lower:
{
"type": "external",
"processes": {"spare": 0},
"working_directory": '/project',
"executable": "/usr/bin/env",
"arguments": [
"node",
"--require",
"unit-http/require_shim",
"app.js"
]
}
16 lines
350 B
Python
16 lines
350 B
Python
import os
|
|
import subprocess
|
|
|
|
|
|
def check_node(current_dir):
|
|
if not os.path.exists(current_dir + '/node/node_modules'):
|
|
return None
|
|
|
|
try:
|
|
v_bytes = subprocess.check_output(['/usr/bin/env', 'node', '-v'])
|
|
|
|
return [str(v_bytes, 'utf-8').lstrip('v').rstrip()]
|
|
|
|
except subprocess.CalledProcessError:
|
|
return None
|