1

It is currently an idea to build a command line tool which makes my work easier. The command line tool is installed globally with npm install -g name_of_ci. Another module which is e.g. on my second harddisk D:/ is of course not installed. Now I want to execute name_of_ci in this folder. Then I read the folder structure and search for special javascript files. These must then be imported into name_of_ci dynamically. Of course the dependencies have to be resolved as well. The folder node_modules is present because for the condition of my tool is that all dependencies are installed. If I now use import() for this task it is not possible. There I get only an error message that it does not find the module: Cannot find module './dist/test/Test.js'. But of course the file exists in this path. What are the possibilities to dynamically load a javascript file with its dependencies?

1 Answer 1

1

import() is the correct tool, you're just not providing the correct path. You have to provide a path that's relative to the script doing the import(). It sounds like that's your name_of_ci tool, which is installed globally, so ./dist/test/Test.js will not be a path to the file from that tool's script. That looks like a path relative to the current directory instead.

You may need to use an absolute path, perhaps retrieved by converting the relative path to an absolute one via path.resolve:

const mod = await import(path.resolve(pathRelativeToCurrentDirectory));
// ...

That will need to be tweaked, of course, but fundamentally it should work.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.