为浏览器和节点编写JS代码



作为一名编程新手,我通常用JS编写的代码并不是很复杂。直到现在,我才觉得有必要把它分成更容易管理的小块。
我总是使用单个文件和单个对象的方法

const mymodule = {
feature: function(){...},
submodule: {
property: 5,
...
}
}

然后我只需将其加载到html中。为了调试,我使用了浏览器控制台。
但是最近我安装了nodeJS并了解了模块系统,我认为这正是我当前项目所需要的。到目前为止,我使用上面所示的技术对其进行了编码,但是现在很难管理。滚动浏览一个巨大而混乱的js文件是相当令人沮丧的。我也意识到,也许我也想在node中使用这个项目,所以模块真的会帮助我。

在MDN文档上,我了解到模块也可以在浏览器中使用,这让我非常高兴,直到我意识到在浏览器中它们不能在本地运行,而只能通过http(s) -服务(这意味着我不能使用我最喜欢的chrome控制台进行调试😔)。但是如果模块系统与nodeJS中相同,那么我可以使用node在本地运行和测试项目!

然而,我不知道如何使用模块,以便它们可以在浏览器和节点中使用。例如要求、输入和输出(export×exports =×module.exports =)的混乱方式。
我知道一些和我的问题类似的老问题,但它们都很老了。由于模块现在确实是web标准的一部分,我真的希望有一种简单的方法来做到这一点,而不需要任何外部工具。

如果你能给我指出正确的方向,或者给我举一个例子,写一个可以在两个环境中运行的模块,那就太好了。

在这种情况下你可以使用web捆绑器。像snowpack这样的东西将允许您使用通过运行snowpack dev在本地安装的nodejs模块。它将为您提供本地web服务器,并自动打开您的页面的浏览器窗口,这也允许您使用MDN示例。

最新更新