I am testing some nodejs code, and this is how my directory looks like:
-> source //NODE PATH=./source ...
-> plugs
-myPlug.js
-test.js
In test.js I try to require myPlug.js like this:
function(){
var myRequiredPlug = require('./myPlug.js') //this works
}
Since the NODE PATH is source, I have also tried:
function(){
var myRequiredPlug = require('./../plugs/myPlug') //also works
}
But I will have to require a different plug every time for my app, so I would very much like to create the path this way:
function(nameOfPlug){ // nameOfPlug := myPlug
var myPath = './../plugs/' + nameOfPlug;
console.log(myPath === './../plugs/myPlug') // true, so same string
var myRequiredPlug = require(myPath);
}
When I try it his way, I get the error: Error: Cannot find module './../plugs/myPlug'
I have already tried path.normalize, and even to join the paths with path.join, but get the same results. Any ideas?
This answer can be solved using RequireJS, Dynamic require in RequireJS, getting "Module name has not been loaded yet for context" error?
I use compound lines, but not completely.
Wrong:
const path = './some/path.file';
const data = require(`${path}`);
Right:
const path = 'file';
const data = require(`./some/${path}.file`);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With