Difference between revisions of "require"

m
 
(2 intermediate revisions by 2 users not shown)
Line 9: Line 9:
  
  
LÖVE adds two loaders (before the Lua loaders) that search for modules in the [[love.filesystem|game and save directory]]. These loaders are not affected by Lua's <code>package.path</code>.
+
LÖVE adds two loaders (before the Lua loaders) that search for modules in the [[love.filesystem|game and save directory]]. These loaders are not affected by Lua's <code>package.path</code>. The paths can be altered with [[love.filesystem.setRequirePath]] for Lua modules and [[love.filesystem.setCRequirePath]] for C modules, the latter only work on files located at [[love.filesystem.getSaveDirectory|save directory]].
  
 +
== Notes ==
 +
It's strongly recommended to use period as directory separator! Forward slashes ''accidently'' work, hence its usage is discouraged!
 +
One of the reasons is that loading modules that are not Lua code files is only possible with dots as separator, and using dots and slashes at the same time might lead to mixing separators, and due to mixing require might load the same code multiple times.
 
== See Also ==
 
== See Also ==
 
* [http://www.lua.org/manual/5.1/manual.html#pdf-require require on the Lua manual.]
 
* [http://www.lua.org/manual/5.1/manual.html#pdf-require require on the Lua manual.]
 
* [http://www.lua.org/pil/8.1.html Programming in Lua.]
 
* [http://www.lua.org/pil/8.1.html Programming in Lua.]
 +
 +
== Other Languages ==
 +
{{i18n|require}}

Latest revision as of 03:56, 31 July 2023

Opens and executes Lua modules.

Use periods to seperate folders. If the module is a lua file, don't use the .lua extension in the string passed to require.

require("foo")
require("subfolder.bar")


LÖVE adds two loaders (before the Lua loaders) that search for modules in the game and save directory. These loaders are not affected by Lua's package.path. The paths can be altered with love.filesystem.setRequirePath for Lua modules and love.filesystem.setCRequirePath for C modules, the latter only work on files located at save directory.

Notes

It's strongly recommended to use period as directory separator! Forward slashes accidently work, hence its usage is discouraged! One of the reasons is that loading modules that are not Lua code files is only possible with dots as separator, and using dots and slashes at the same time might lead to mixing separators, and due to mixing require might load the same code multiple times.

See Also

Other Languages