Extension Chrome : importer des modules ES6 dans des scripts de contenu
<p>Dans <strong>Chrome 61</strong>, la prise en charge des modules JavaScript a été ajoutée. Maintenant, j'utilise Chrome 63. </p>
<p>J'essaie d'utiliser un module dans un script de contenu d'extension Chrome en utilisant la syntaxe <code>import</code>/<code>export</code> </p>
<p>Dans<strong><code>manifest.json</code></strong>:</p>
<pre class="brush:php;toolbar:false;">"content_scripts": [
{
"js": [
"content.js"
],
}
]≪/pré>
<p>Dans<strong><code>my-script.js</code></strong> (avec <strong><code>content.js</code></strong> même répertoire ):</p>
<pre class="brush:php;toolbar:false;">'use strict';
const injectFunction = () => window.alert('bonjour tout le monde');
exporter la fonction d'injection par défaut ;</pre>
<p>Dans<strong><code>content.js</code></strong>:</p>
<pre class="brush:php;toolbar:false;">'use strict';
importer injectFunction depuis './my-script.js' ;
injectFunction();</pre>
<p>J'obtiens cette erreur :<strong><code>Erreur de syntaxe non détectée : Identificateur inattendu</code></strong></p>
<p>Si je modifie la syntaxe d'importation en <code>import {injectFunction} from './my-script.js';</code> j'obtiens cette erreur : <strong><code>Uncaught SyntaxError : Jeton inattendu {</code></strong><
</p><p>Y a-t-il un problème lors de l'utilisation de cette syntaxe dans <strong><code>content.js</code></strong> dans l'extension Chrome (car en HTML, vous devez utiliser <p> ;code>
<script type="module" src="script.js "></code> syntaxe), ou est-ce que je fais quelque chose de mal ? Il semble étrange que Google ignore la prise en charge des extensions. </p></script>
</code></p>