在meteor应用程序中更改导入的文件后重新编译

在meteor应用程序中更改导入的文件后重新编译,meteor,babeljs,Meteor,Babeljs,我正在创建babel插件,根据文件存在的一些条件来管理导入路径。在初始构建时,一切正常,但当我添加或删除会影响条件结果的文件时,编译器不会重新编译导入更改文件的文件,所以条件仍然会被解析,就像引用文件存在一样,但编译器无法找到它 我相信这是由于缓存。那么,如何管理/清除缓存?当然,我希望保留尽可能多的缓存。所以,也许,有没有办法以编程方式从缓存中只删除受我的插件影响的文件 插件的基本逻辑如下: const fs=require(“fs”); 常量fs_path=require(“路径”); 函数

我正在创建babel插件,根据文件存在的一些条件来管理导入路径。在初始构建时,一切正常,但当我添加或删除会影响条件结果的文件时,编译器不会重新编译导入更改文件的文件,所以条件仍然会被解析,就像引用文件存在一样,但编译器无法找到它

我相信这是由于缓存。那么,如何管理/清除缓存?当然,我希望保留尽可能多的缓存。所以,也许,有没有办法以编程方式从缓存中只删除受我的插件影响的文件

插件的基本逻辑如下:

const fs=require(“fs”);
常量fs_path=require(“路径”);
函数shouldResourceImport(节点){
/*一些支票,返回布尔*/
}
module.exports=函数(巴别塔){
返回{
参观者:{
导入声明(路径、状态){
如果(!shouldResourceImport(path.node)){
返回;
}
const existing_file=/*检查是否存在其他文件*/;
if(现有的_文件){
path.node.source.value=现有的_文件;
}
}
}
};
};
我试图实现的是使用一些默认文件进行导入,但当其他特定目录中存在相同的文件时,则更改其他文件的导入

我使用流星1.7与巴别塔7测试版,并作出反应

我已经和巴别塔的支持人员联系过了,这似乎是流星号的问题


谢谢。

用这种方式是无法实现的。 所以我决定使用try-on-import覆盖文件并进一步导出它。如果导入失败,则表示该文件不存在,因此默认文件将导出其默认内容:

。。。
让我们去出口;
试一试{
从“覆盖路径”导入覆盖;
toExport=覆盖;
}捕获(e){
toExport=原始ALEXPORT;
}
导出默认为导出;
以后只需构建插件,而不是修改导入修改文件。

FYI,我已经提交了文件,以跟踪今后围绕此问题的任何讨论。