问题描述
在进行chrome插件开发时,我们有时会希望把一些公共的方法包装成一个模块,例如发送网络请求的方法,然后在其他js文件中import然后调用,但是在实际操作时,遇到了这样的问题:
控制台报错cannot use import statement outside a module
解决办法
对于background:
参考了stackoverflow上的这篇帖子https://stackoverflow.com/questions/67510470/how-to-import-js-file-to-background-js-in-chrome-extension-from-the-same-folder
在manifest.json中,将background中的type设置为module即可
对于content_script
chrome插件对于content_script的限制比较多,所以可以考虑使用发送消息的方式,把需要发送的请求信息封装一下,然后通过消息机制传给background
对于插件内的其他html页面
在使用<script>
标签引入该html页面需要的js文件时,指定一下type="module"
就可以在js文件里面正常使用import了
例如
在html页面里面这样引入js文件
<script type="module" src="manage_remote_file.js"></script>
然后就可以在引入的js文件里面正常地import了