node-app-root-path
node-app-root-path copied to clipboard
[fix] add support for esbuild
This may be related to #49 , but given the original ticket was not about esbuild, this is more related to one of the replies there.
I'm using serverless-esbuild / serverless-offline to run my code.
- the
resolvedvariable in app-root-path'sresolve.jsis resolving to'/my/path/to/project/.esbuild/.build/src' - the
appRootPathis being returned as'/my/path/to/project/node_modules/serverless-offline/src/lambda/handler-runner/worker-thread-runner'- looks like appRootPath is being set for me in the else at the bottom:
appRootPath = path.dirname(process.argv[1]);
- looks like appRootPath is being set for me in the else at the bottom:
- and what I want would be
/my/path/to/project/
By changing getFirstPartFromNodeModules to getFirstPart and having it look for either node_modules or esbuild, it seems to solve this issue for me.
I thought about doing something like the following, if it would be preferred:
const getFirstPart = function (resolved) {
const foldersToSplitOn = [
'node_modules',
'.esbuild'
].map(folder => sep + folder);
const dirRegEx = new RegExp(foldersToSplitOn.join('|'));
if (foldersToSplitOn.some(folder => -1 !== resolved.indexOf(folder))) {
const parts = resolved.split(dirRegEx);
if (parts.length) {
return parts[0];
}
}
return null;
};
@inxilpro I know the readme says " Expect long stretches of zero updates—that does not mean that the module is outdated," but I believe this PR is still needed. It's been hanging out over 6 months now with no response, and it isn't long.