javascript – 如何在Gjs代码中设置包含路径?

正如我所看到的,Gjs导入,认只加载/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中?

(请你,你不需要建议使用一个shellcript启动器来解决–include-path和GJS_PATH问题.这很明显,但不那么强大.如果我们没有更好的解决方案,我们就能幸存下来.)

解决方法

您需要设置或修改imports.searchPath(这并不明显,因为它没有显示for(x in imports)print(x)).所以这:
imports.searchPath.unshift('.');
var foo = imports.foo;

文件“foo.js”作为foo对象导入.

这与Seed兼容,虽然有进口知道它有一个searchPath.

(这个答案的早期版本实际上不太准确,更具煽动性.抱歉).

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...