[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: require() relative to calling file
- From: Sean Conner <sean@...>
- Date: Sun, 5 Feb 2017 18:53:31 -0500
It was thus said that the Great Daurnimator once stated:
> On 4 February 2017 at 20:23, Sean Conner <sean@conman.org> wrote:
> > Where do you add the "application path"? Do you prepend it to
> > package.path? Or append it to package.path?
>
> You don't want to modify package.path for this type of functionality.
> A key note is that the string you pass to the `require` function is
> what the module is saved under in `package.loaded`.
> It *has* to be something a function that wraps or re-implements
> `require` itself.
>
> Now I ask: why are we taking about this in relation to file systems?
> package searchers can be abstract, and don't have to be bound by a
> file system layout.
> I think the only reasonable way to accomplish a 'relative require' is
> to use the *current* module path as a prefix.
The question wasn't loading modules relative to other modules, but
relative to a non-module script. The example was:
foo/
app.lua -- require "module"
module.lua
If you are in foo/, then "lua app.lua" works. But it fails if you aren't in
foo---"lua foo/app.lua". What you are talking about is subtly different,
but probably related.
-spc
- References:
- Re: require() relative to calling file, Sean Conner
- Re: require() relative to calling file, Russell Haley
- Re: require() relative to calling file, Scott Morgan
- Re: require() relative to calling file, Russell Haley
- Re: require() relative to calling file, Sean Conner
- Re: require() relative to calling file, Russell Haley
- Re: require() relative to calling file, Sean Conner
- Re: require() relative to calling file, Russell Haley
- Re: require() relative to calling file, Sean Conner
- Re: require() relative to calling file, Daurnimator