54 votes

Les fichiers de plugins/présets Babel ne sont pas autorisés à exporter des objets, mais uniquement des fonctions.

J'essaye d'utiliser Babel-loader sur un vieux projet, et je remarque quelques problèmes concernant le moment où Babel-loader travaille sur des objets enveloppés, est-ce son comportement par défaut ? Je ne sais pas si c'est un bug ou quelque chose que je fais mal, je n'ai pas pu trouver grand chose à ce sujet sur google, donc c'est ma dernière ressource.

Devrais-je modifier quelque chose dans mon code pour que cela fonctionne ?

Voici mes spécifications actuelles : Webpack : 3.19.0 babel/core : 7.0.0-beta.34 babel-loader : 8.0.0-beta.0

Veuillez vous référer à mon package.json si nécessaire :

http://paste.ubuntu.com/26187880/

J'essaie de charger un seul fichier dans une fonction :

http://paste.ubuntu.com/26187814/

Reprenant, quelque chose de vieux, qui est construit comme ça :

(  window.global = { } )();

Voici ma configuration webpack :

const webpackConfig = {
    context: __dirname,
    entry: {
        app: '../../JavaScript/Namespacing.js'
    },
    module: {
        rules: [
          {
            test: /.jsx?$/,
            exclude: /(node_modules|bower_components)/,
            use: {
              loader: 'babel-loader',
            }
          }
        ]
    },
    output: {
      path: __dirname + "/../../static/js",
      filename: "[name].js"
    },
    plugins: [
        new webpack.ProvidePlugin({
            $: "jquery",
            jQuery: "jquery",
            "window.jQuery": "jquery"
        })
    ],
}

Et l'erreur que j'obtiens sur mon fichier est la suivante :

Plugin/Preset files are not allowed to export objects, only functions.

Alors, est-ce que je rate quelque chose ?

Merci pour toute aide.

1 votes

Je peux voir votre .babelrc ?

1 votes

@Gabriel Slomka Votre problème a-t-il été résolu avec la réponse donnée ci-dessous ?

0voto

KushalSeth Points 828

La plupart des paquets n'étaient même pas installés. Voici donc la combinaison qui a réellement fonctionné. N'oubliez pas de supprimer vos node_modules avant de tester et les changements dans .babelrc sont importants. Mise à jour de devDependencies de package.json et .babelrc de.

Mis à jour à partir de :

1. Package.json file:

"devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.5",
    "webpack": "^4.41.2",
}

2. .babelrc file:

{
   "presets": [
      "env",
      "react",
      "es2015"
  ],
  "plugins": [
    "transform-class-properties",
    "transform-object-rest-spread",
    "transform-react-jsx"
  ]
}

Mis à jour à :

1. Package.json file:

"devDependencies": {
      "@babel/core": "^7.13.10",
      "@babel/plugin-proposal-class-properties": "^7.8.3",
      "@babel/preset-env": "^7.1.6",
      "@babel/preset-react": "^7.0.0",
      "babel-cli": "^6.26.0",
      "babel-core": "^7.0.0-bridge.0",
      "babel-loader": "^8.0.4",
      "webpack": "^4.46.0"
}

2. .babelrc file:

{
  "presets": ["@babel/preset-env", "@babel/react"],
  "plugins": [
    "transform-class-properties",
    "transform-object-rest-spread",
    "transform-react-jsx"
  ]
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X