如我所见,Gjs imports
,仅加载 /usr/share/gjs-1.0
和 /usr/lib/gjs-1.0
默认情况下。我想模块化应用程序,就像我们可以对节点所做的那样,但我必须找到与脚本文件相关的模块。
我发现了这两种添加包含路径的方法:
gjs --include-path=my-modules my-script.js
GJS_PATH=my-modules gjs my-script.js
...但是两者都与当前目录相关,而不是与文件相关(显然),并且它们需要在命令行上声明,这使得这变得不必要的复杂。
如何在 Gjs 代码中设置包含路径? (所以我可以使它与文件相关)
或者...还有另一种从任何地方导入文件的方法,比如在 python 中?
(拜托,你不需要建议使用 shellscript 启动器来解决 --include-path
和 GJS_PATH
问题。这是显而易见的,但功能较弱。如果我们没有更好的解决方案,我们只能靠它生存。)
最佳答案
您需要设置或修改 imports.searchPath
(这并不明显,因为它不会显示为 for (x in imports)print(x)
) .所以这个:
imports.searchPath.unshift('.');
var foo = imports.foo;
导入文件“foo.js”作为foo
对象。
这与 Seed 兼容,尽管 imports
知道它有一个 searchPath
。
(此答案的早期版本不太准确,更具煽动性。抱歉)。
关于javascript - 如何在Gjs代码中设置包含路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10093102/