# When compiling with webpack it does not recognize the cesium module

**URL:** <https://community.cesium.com/t/when-compiling-with-webpack-it-does-not-recognize-the-cesium-module/19188>\
**Category:** CesiumJS\
**Created:** [June 21, 2022, 11:58am UTC](https://community.cesium.com/t/when-compiling-with-webpack-it-does-not-recognize-the-cesium-module/19188 "2022-06-21T11:58:17Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Pablo\_Aballe](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/pablo_aballe/32/9771_2.png) [@Pablo\_Aballe](https://community.cesium.com/u/Pablo_Aballe)\
**Post date:** [June 21, 2022, 11:58am UTC](https://community.cesium.com/t/when-compiling-with-webpack-it-does-not-recognize-the-cesium-module/19188/1 "2022-06-21T11:58:17Z")

</div>

Hello, I am developing a library in which I use cesium for 3D functionality but when I package it and try to use it in a React application I get an error that it does not recognize “cesium” as a module. I attach several files as my webpack configuration in the library as well as the error message. Thank you very much in advance.

 ![image](https://global.discourse-cdn.com/cesium/original/2X/e/eadc80de2ec1c00228e1dad80f4cf7a6d2fe6e5b.png)

```auto
// The path to the CesiumJS source code
const cesiumSource = "node_modules/cesium/Source";
const cesiumWorkers = "../Build/Cesium/Workers";
const CopyWebpackPlugin = require("copy-webpack-plugin");
const path = require("path");
const webpack = require("webpack");

module.exports = {
    target: "web",
    context: __dirname,
    entry: {
        app: "./src/index.ts",
    },
    performance: {
        hints: false,
        maxEntrypointSize: 512000,
        maxAssetSize: 512000,
    },
    optimization: {
        minimize: true,
    },
    output: {
        filename: "index.js",
        path: path.resolve(__dirname, "dist"),
        libraryTarget: "umd",
        globalObject: "this",
        umdNamedDefine: true,
        sourcePrefix: "",
    },
    externals: {
        cesium: "cesium",
    },
    amd: {
        // Enable webpack-friendly use of require in Cesium
        toUrlUndefined: true,
    },
    resolve: {
        alias: {
            cesium: path.resolve(__dirname, cesiumSource),
        },
        mainFiles: ["index", "Cesium"],
        extensions: [".tsx", ".ts", ".js"],
    },
    devServer: {
        contentBase: path.join(__dirname, "dist"),
        allowedHosts: "all",
        compress: true,
        port: 9000,
    },
    module: {
        rules: [
            {
                test: /\.ts(x?)$/,
                use: "ts-loader",
                exclude: /node_modules/,
            },
            {
                test: /\.css$/,
                use: ["style-loader", "css-loader"],
            },
            {
                test: /\.(png|gif|jpg|jpeg|xml|json)$/,
                use: ["file-loader"],
                exclude: /node_modules/,
            },
            {
                test: /\.svg/,
                type: "asset/inline",
            },
        ],
    },
    plugins: [
        // Copy Cesium Assets, Widgets, and Workers to a static directory
        new CopyWebpackPlugin({
            patterns: [
                { from: path.join(cesiumSource, cesiumWorkers), to: "Workers" },
                { from: path.join(cesiumSource, "Assets"), to: "Assets" },
                { from: path.join(cesiumSource, "Widgets"), to: "Widgets" },
            ],
        }),
        new webpack.DefinePlugin({
            // Define relative base path in cesium for loading assets
            CESIUM_BASE_URL: JSON.stringify(""),
        }),
    ],

    devtool: false,
};

```
