ckeditor5-react icon indicating copy to clipboard operation
ckeditor5-react copied to clipboard

Error: Cannot read properties of undefined (reading 'createContext')

Open cassio-gamarra opened this issue 1 year ago • 6 comments

image

This errors occurs after build the project. In development time don't happs.

I'm using Vite to build.

My vite.config.ts file:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react-swc';
import tsconfigPaths from 'vite-tsconfig-paths';
export default defineConfig({
  plugins: [react(), tsconfigPaths()],
  build: {
    rollupOptions: {
      output: {
        manualChunks(id) {
          if (id.includes('node_modules')) {
            return id
              .toString()
              .split('node_modules/')[1]
              .split('/')[0]
              .toString();
          }
        },
      },
    },
  },
});

cassio-gamarra avatar Nov 21 '23 17:11 cassio-gamarra

You need to use our Vite plugin as well.

Witoso avatar Nov 22 '23 11:11 Witoso

I add vite plugin e build again: image

Same error: image

Using the editor: image image

My package.json references "react": "^18.2.0" and the build machine is using node v20.9.0.

cassio-gamarra avatar Nov 22 '23 14:11 cassio-gamarra

As far as I can see, you're using a predefined build, it doesn't require any Vite plugin, as the code is already built in the npm package.

Witoso avatar Nov 27 '23 09:11 Witoso

Any idea how i fix the reading 'createContext' error?

cassio-gamarra avatar Nov 28 '23 04:11 cassio-gamarra

I would appreciate it if you could prepare some reproducible code sample for us (repo or zip).

Witoso avatar Nov 28 '23 08:11 Witoso

Same error here, after building using npm run build vite.config.mjs

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import commonjs from "vite-plugin-commonjs";
export default defineConfig(() => {
    return {
        plugins: [
            react(),
            commonjs({
                filter(id) {
                    if (["libs/ckeditor5/build/ckeditor.js"].includes(id)) {
                        return true;
                    }
                },
            }),
        ],
        optimizeDeps: {
            include: ["ckeditor5-custom-build"],
        },
        build: {
            commonjsOptions: { exclude: ["ckeditor5-custom-build"] },
            outDir: 'build',
            rollupOptions: {
                output:{
                    manualChunks(id) {
                        if (id.includes('node_modules')) {
                            return id.toString().split('node_modules/')[1].split('/')[0].toString();
                        }
                    }
                }
            }
        },
    };
});

Though it works fine without the rollupOptions, but I need them. Edit: I fixed this after adding `if (id.includes('commonjsHelpers')) return 'commonjsHelpers' to the manual chunking:

manualChunks(id) {
                        if (id.includes('commonjsHelpers')) return 'commonjsHelpers'
                        if (id.includes('node_modules')) {
                            return id.toString().split('node_modules/')[1].split('/')[0].toString();
                        }
                    }

MohamedKarrab avatar Apr 29 '24 13:04 MohamedKarrab