如何在 vscode 中为 IntelliSense 定义流星开发的运行时

How define runtime for meteor development for IntelliSence in vscode

我有一个带有服务器和客户端代码导入的流星回购,它在捆绑时间解决了:

// src/models/messages
import { Meteor } from 'meteor/meteor';

if (Meteor.isClient) {
    module.exports = require('./client/index.js');
}
if (Meteor.isServer) {
    module.exports = require('./server/index.js');
}

可以看出,我有一个在客户端代码和服务器代码中导入的消息模型,具有相同的路径。 当我使用 VSCode 开发时,IntelliSense 无法解析此类导入,我可以使用 IDE.

的所有功能

有什么方法可以配置 IntelliSense 将源代码映射到当前环境?例如,如果我在服务器代码中工作,当 import { Messages } from '../../models/messages' 应该解析为 src/models/messages/server/index.js?

经过一些研究,我得出结论,这是不可能的。 最好的方法是使用不同的导入拆分服务器和客户端代码。这应该防止不可预测的代码执行。 但是,如果服务器和客户端上的代码共享相同的契约(接口),那么声明抽象 类 并在客户端代码和服务器代码中实现它们会更好。然后就可以进行这样的条件导入并保护自己免受运行时错误的影响。