2022年的更新答案
简短回答:是的,你可以要求/导入包。而不是自己费力地设置和配置像Webpack这样的打包工具(特别是如果你没有使用过它们),现在有一些构建工具可以用来创建Chrome扩展的样板代码:
使用它们的好处:
npm
然后,当然,让Chrome扩展的官方文档引导你完成剩下的部分。
这是可能的,但你必须小心。尝试使用require()来加载一个包意味着Node将尝试在你的文件系统中定位它的文件。Chrome扩展只能访问你在清单中声明的文件,而不能访问你的文件系统。
为了解决这个问题,使用像Webpack这样的模块打包工具,它将生成一个包含通过require()引入的所有包的代码的单个JavaScript文件。你需要为你的每个Chrome扩展组件生成一个单独的模块(例如背景页、内容脚本、弹出窗口),并在清单中声明每个生成的模块。
为了避免尝试设置构建系统以使require()可用,我建议从一个样板项目开始。你可以查看我的扩展来看我是如何做的。
2022年的更新答案
简短回答:是的,你可以要求/导入包。而不是自己费力地设置和配置像Webpack这样的打包工具(特别是如果你没有使用过它们),现在有一些构建工具可以用来创建Chrome扩展的样板代码:
使用它们的好处:
npm
安装任何你需要的包/依赖。然后,当然,让Chrome扩展的官方文档引导你完成剩下的部分。
这是可能的,但你必须小心。尝试使用require()来加载一个包意味着Node将尝试在你的文件系统中定位它的文件。Chrome扩展只能访问你在清单中声明的文件,而不能访问你的文件系统。
为了解决这个问题,使用像Webpack这样的模块打包工具,它将生成一个包含通过require()引入的所有包的代码的单个JavaScript文件。你需要为你的每个Chrome扩展组件生成一个单独的模块(例如背景页、内容脚本、弹出窗口),并在清单中声明每个生成的模块。
为了避免尝试设置构建系统以使require()可用,我建议从一个样板项目开始。你可以查看我的扩展来看我是如何做的。