我正在使用一个名为buildX
的命令的monorepo中的CLI包:
通过几个目录,尝试require
存在于这些目录的某些文件中的模块。
所以基本上我会尝试做类似的事情:
buildX --source ./somewhere --target ./somewhere/else
它应该在某个地方对这些模块进行一些操作并将其保存在目标中。
问题是: 如果我有:
* - somewhere
* | - index.js
*
*somewhere else
Index.js:
import { coolFunction } from 'cool-library';
export default coolFunction({some: object, generated: dynamically })
在执行require('./somewhere/index.js')
时,有一个例外:它无法在指定路径中找到该模块。这是因为在执行__dirname时,其中显示的路径是存储bin
的路径,而不是执行它的路径。
我怎么能以动态的方式要求index.js?我尝试使用SystemJS
,也使用eval,也使用dynamic-import-support
。
我只想能够执行index.js导出默认值。
任何建议或解决方案都是非常受欢迎的!提前致谢
答案 0 :(得分:0)
找到基于ESLint库的解决方案。具有util函数,有助于从当前工作空间导入航班上的配置文件,而不是使用__dirname
。
对于人们在成功要求后可能发现的问题,例如ES6导入或节点版本不支持的任何其他功能,您可以使用babel-register在航班上构建模块,而不是预先构建它们。