Salut à tous,

J'essaie de convertir, à l'aide de Webpack et de Babel, un script JS basique qui contient une instruction import en script contenant une instruction require donc ES5.
Mais ce transpilage, d'apparence simple, me pose un problème. Et malgré le tourner dans tous les sens je n'arrive pas à me débarasser de cette erreur :

ERROR in ./src/test/test-transpilling.js 1:0
Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
File was processed with these loaders:
* ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
> import chalk from 'chalk';
| console.log(chalk.blue('Ceci est un test de transpilling ES6 -> ES5'));
ModuleParseError: Module parse failed: 'import' and 'export' may appear only with 'sourceType: module' (1:0)
Voici ma configuration Webpack + Babel :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
const  path                         = require('path')
const  nodeExternals                = require('webpack-node-externals')
 
const buildDir          = path.join(__dirname, '..', 'build')
const srcDir            = path.join(__dirname, '..', 'src')
const srcEntryFile      = path.join(__dirname, '..', 'src', 'test', 'test-transpilling.js')
 
const mode = 'development'
 
const webpackConfig = [
{
        entry: srcEntryFile,
 
        output: {
            clean: true,
            path: buildDir,
            publicPath: './build/',
            filename: 'test-transpilling.js'
        },
 
        mode,
        devtool: 'eval',
        target: 'node',
        externals: [nodeExternals()],
        stats: 'verbose',
 
        node: {
            __dirname: false,
            __filename: false
        },
 
        resolve: {
            alias: {"@": srcDir},
            extensions: ['js'],
        },
 
        module: {
            rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
                options: {
                    presets: ['@babel/preset-env']
                }
            }]
        },
 
        plugins: []
    },
]
 
module.exports = webpackConfig


et mon fichier JS à convertir :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
import chalk from 'chalk'
 
 
console.log(chalk.blue('Ceci est un test de transpilling ES6 -> ES5'))
Pourquoi babel refuse de convertir mon instruction d'import ?
Quels options subtilité d'import ai-je oublié ?

Merci de votre éclairage