J'ai eu cette erreur lorsque j'essaie de rendre Button à partir de la conception de fourmis dans mon projet Electron, et cela ne rend rien à la place. Lorsque je passe du bouton au texte Hello World, cela fonctionne.
Je ne sais pas si l'erreur provient du webpack ou de la conception de la fourmi elle-même.
Remarque: je crée manuellement ce projet moi-même , mais l'erreur peut être reproduite sur https://github.com/Devtography/ electron-react-typescript-webpack-passe-partout mais pas d'erreur sur https: // github .com / Robinfr / electron-react-typescript
Message d'erreur
const path = require("path"); const HtmlWebPackPlugin = require("html-webpack-plugin"); const htmlPlugin = new HtmlWebPackPlugin({ template: "./src/index.html", filename: "./index.html" }); const config = { target: "electron-renderer", devtool: "source-map", entry: "./src/app/renderer.tsx", output: { filename: "renderer.js", path: path.resolve(__dirname, "dist") }, module: { rules: [ { test: /\.(ts|tsx)$/, exclude: /node_modules/, use: { loader: "babel-loader" } }, { test: /\.css$/, loaders: ['style-loader', 'css-loader'] } ] }, resolve: { extensions: [".ts", ".tsx", ".js"] }, plugins: [htmlPlugin] }; module.exports = (env, argv) => { return config; };
webpack.config.js
const path = require("path"); const config = { target: "electron-main", devtool: "source-map", entry: "./src/main.ts", output: { filename: "main.js", path: path.resolve(__dirname, "dist") }, module: { rules: [ { test: /\.(ts|tsx)$/, exclude: /node_modules/, use: { loader: "babel-loader" } } ] }, resolve: { extensions: [".ts", ".tsx", ".js"] }, node: { __dirname: false, __filename: false } }; module.exports = (env, argv) => { return config; };
webpack.react.config.js
Uncaught ReferenceError: global is not defined at Object../node_modules/fbjs/lib/setImmediate.js (renderer.js:58171) at __webpack_require__ (renderer.js:20) at Object../node_modules/draft-js/lib/editOnBeforeInput.js (renderer.js:49367) at __webpack_require__ (renderer.js:20) at Object../node_modules/draft-js/lib/DraftEditorEditHandler.js (renderer.js:45296) at __webpack_require__ (renderer.js:20) at Object../node_modules/draft-js/lib/DraftEditor.react.js (renderer.js:44011) at __webpack_require__ (renderer.js:20) at Object../node_modules/draft-js/lib/Draft.js (renderer.js:43920) at __webpack_require__ (renderer.js:20)
3 Réponses :
Ceci est lié à https://github.com/facebook/fbjs/issues/290 .
Corrigez-le en ajoutant un objet global
sur la window
:
(window as any).global = window;
J'ai eu le même problème, ce que j'ai fait avant toute exécution de script:
global = globalThis;
Juste pour ajouter un peu de contexte à la réponse fournie, ajoutez ceci dans votre fichier index.html (à l'intérieur des balises):
<script> const global = globalThis; </script>
Des solutions de travail?