Google chrome extension chrome扩展中是否可能需要npm模块?

Google chrome extension chrome扩展中是否可能需要npm模块?,google-chrome-extension,npm,Google Chrome Extension,Npm,我尝试过这样做,但我有一个“require is not defined”错误。我找不到关于这方面的信息,有人能告诉我吗?在chrome扩展中直接需要节点模块是不可能的。但是,可以将节点应用程序和包捆绑到浏览器中,以便与扩展一起使用。更多信息请参见此处:这是可能的,但您必须小心。尝试要求()一个包意味着节点将尝试在您的文件系统中定位其文件。chrome扩展只能访问清单中声明的文件,而不能访问文件系统 要解决这个问题,请使用模块绑定器(如Webpack),它将生成一个javascript文件,其中

我尝试过这样做,但我有一个“require is not defined”错误。我找不到关于这方面的信息,有人能告诉我吗?

在chrome扩展中直接需要节点模块是不可能的。但是,可以将节点应用程序和包捆绑到浏览器中,以便与扩展一起使用。更多信息请参见此处:

这是可能的,但您必须小心。尝试要求()一个包意味着节点将尝试在您的文件系统中定位其文件。chrome扩展只能访问清单中声明的文件,而不能访问文件系统

要解决这个问题,请使用模块绑定器(如Webpack),它将生成一个javascript文件,其中包含require()中包含的所有包的所有代码。您必须为chrome扩展的每个组件生成一个单独的模块(例如,一个用于后台页面,一个用于内容脚本,一个用于弹出窗口),并在清单中声明每个生成的模块


为了避免试图设置生成系统以使使用require()成为可能,我建议从开始。您可以查看我是如何做到这一点的。

只是一个小插曲:如果您只在其中一个组件中使用该模块,则无需为弹出窗口和内容脚本生成单独的模块。我唯一的要求是在我的背景脚本中,因为这是持续存在的,我使用消息传递系统从背景脚本中请求我需要的信息,我鼓励人们也这样做(除非您在弹出窗口/内容脚本中需要的信息无法序列化)。您的扩展名saka密钥就是我要找的模板。谢谢。@Eejdoowad