Skip to content

Commit

Permalink
fix issue vercel#1192
Browse files Browse the repository at this point in the history
  • Loading branch information
erossignon committed Jun 1, 2021
1 parent 31e408f commit 13d6fc4
Show file tree
Hide file tree
Showing 6 changed files with 146 additions and 1 deletion.
2 changes: 1 addition & 1 deletion prelude/bootstrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -483,7 +483,7 @@ function payloadFileSync(pointer) {

(() => {
process.pkg.path = {};
process.pkg.path.resolve = () => {
process.pkg.path.resolve = function resolve() {
const args = cloneArgs(arguments);
args.unshift(path.dirname(ENTRYPOINT));
return path.resolve.apply(path, args); // eslint-disable-line prefer-spread
Expand Down
1 change: 1 addition & 0 deletions test/test-1192/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
dist/
65 changes: 65 additions & 0 deletions test/test-1192/main.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
#!/usr/bin/env node

'use strict';

const path = require('path');
const assert = require('assert');
const utils = require('../utils.js');

assert(!module.parent);
assert(__dirname === process.cwd());

/* eslint-disable no-unused-vars */
const target = process.argv[2] || 'host';
const ext = process.platform === 'win32' ? '.exe' : '';
const cmd = process.platform === 'win32' ? '.cmd' : '';
const output = './output' + ext;
const input = './package.json';

// remove any possible left-over
utils.vacuum.sync('./node_modules');

const version = utils.exec.sync('node --version');
console.log('node version = ', version);

// launch `npm install`
const npmlog = utils.exec.sync('npm' + cmd + ' install');
// console.log('npm log :', npmlog);

utils.pkg.sync(['--target', target, '--output', output, input], {
expect: 0,
});

// -----------------------------------------------------------------------
// Execute programm outside pjg
const logRef = utils.spawn.sync(
'node',
[path.join(__dirname, 'src/index.js')],
{
cwd: __dirname,
expect: 0,
stdio: ['inherit', 'pipe', 'pipe'],
}
);

const log = utils.spawn.sync(path.join(__dirname, output), [], {
cwd: __dirname,
expect: 0,
stdio: ['inherit', 'pipe', 'pipe'],
});

if (logRef.stdout !== log.stdout) {
console.log('expecting', logRef.stdout);
console.log('but got =', log.stdout);
process.exit(1);
}
if (logRef.stderr !== log.stderr) {
console.log('expecting', logRef.stderr);
console.log('but got =', log.stderr);
process.exit(1);
}

utils.vacuum.sync(output);
utils.vacuum.sync('node_modules');
utils.vacuum.sync('package-lock.json');
console.log('Done');
24 changes: 24 additions & 0 deletions test/test-1192/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
{
"name": "pkg-express",
"version": "1.0.0",
"description": "Illustrates issue between pkg 5.2.X and express (works with with pkg pre 5.2.X).",
"repository": "",
"main": "src/index.js",
"bin": "src/index.js",
"license": "MIT",
"scripts": {
"postinstall": "npm run make",
"start": "node .",
"make": "pkg . -o ./dist/pkg-express.exe"
},
"dependencies": {
"express": "^4.17.1",
"pug": "^3.0.2"
},
"devDependencies": {
"pkg": "5.2.1"
},
"pkg": {
"assets": "./public/views/*.pug"
}
}
8 changes: 8 additions & 0 deletions test/test-1192/public/views/index.pug
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

html
head
title Hello World!
body
p Hello World!


47 changes: 47 additions & 0 deletions test/test-1192/src/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
'use strict';

const http = require('http');
const path = require('path');
const express = require('express');

// Express app
const app = express();
// Express views
app.set('views', path.join(__dirname, '../public/views'));
// Use pug as Express view engine
app.set('view engine', 'pug');
// Match all routes
app.use('*', (_req, res) => {
res.render('index.pug');
});

// Start HTTP server
const listener = http.createServer(app).listen(8080, () => {
console.info('Server started, listening on %d', listener.address().port);
});

// ------------------ now query he server
(async () => {
const options = {
hostname: '127.0.0.1',
path: '/',
method: 'GET',
port: 8080,
};

const req = http.request(options, (res) => {
console.log(`statusCode: ${res.statusCode}`);
res.on('data', (d) => {
process.stdout.write(d);
});
});

req.on('error', (error) => {
console.error(error);
process.exit(1);
});
req.on('close', () => {
process.exit(0);
});
req.end();
})();

0 comments on commit 13d6fc4

Please sign in to comment.