如何在 vscode 中为 IntelliSense 定义流星开发的运行时
Posted
技术标签:
【中文标题】如何在 vscode 中为 IntelliSense 定义流星开发的运行时【英文标题】:How define runtime for meteor development for IntelliSence in vscode 【发布时间】:2021-10-23 21:44:25 【问题描述】:我有一个带有服务器和客户端代码导入的流星回购,它在捆绑时间内解决:
// 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
?
【问题讨论】:
【参考方案1】:经过一些研究,我得出结论,这是不可能的。 最好的方法是使用不同的导入拆分服务器和客户端代码。这应该可以防止不可预测的代码执行。 但是,如果服务器和客户端上的代码共享相同的合约(接口),那么最好声明抽象类并在客户端代码和服务器代码中实现它们。然后就可以进行这种有条件的导入并保护自己免受运行时错误的影响。
【讨论】:
以上是关于如何在 vscode 中为 IntelliSense 定义流星开发的运行时的主要内容,如果未能解决你的问题,请参考以下文章
如何在 vscode 中为 IntelliSense 定义流星开发的运行时
在为第三方库进行模块扩充时,如何在 VSCode 中为 JavaScript 中的代码库启用 TypeScript 智能感知?