NPM: Field 'browser' doesn't contain a valid alias configuration

25,939

Unless you provide an actual resolve rule, your imports of anything in the node_modules will default to looking in the folder provided to the context.

Try this rather:

resolve: {    
  modules: [
    /* assuming that one up is where your node_modules sit,
       relative to the currently executing script
    */
    path.join(__dirname, '../node_modules')
  ]
}

Also, make sure that you are referencing your entry relative to the context like so:

"application": "./application.ts"

instead of

"application": "application.ts"
Share:
25,939
Jim
Author by

Jim

Craig is an accomplished technical specialist with vast integration and financial services experience. His distinguished accomplishments span several continents at some of the largest financial services and manufacturing institutions in the world. BMW, Johannesburg Stock Exchange, Stanlib, Royal Bank of Scotland, Merrill Lynch and Bank of America. Craig has engineered systems as diverse as cross continental messaging infrastructure, calculation of volatility matrices, manufacturing cost analysis, and full stack integrated web site construction and mobile application development.

Updated on July 20, 2021

Comments

  • Jim
    Jim almost 3 years

    Executing This:

    node .\node_modules\webpack\bin\webpack.js --config scripts/webpack.config.js --display-error-details
    

    Produces this error.

    I am just testing this at the moment, so application.ts just has this

    export class Aureus {
    
        constructor() {
            alert('1');
        }
    
    }
    

    The webpack file looks as follows:

    const globule = require("globule");
    const path = require("path");
    const webpack = require("webpack");
    const extractTextPlugin = require("extract-text-webpack-plugin");
    
    const config = {
    };
    
    const configuration = {
        context: __dirname,
        entry: {
            "application": 
                "application.ts",
                ...globule.find("aureus/**/*.ts", { srcBase: "./scripts" }),
            ,
            "vendor": [
                "bootstrap",
                "jquery",
                "angular",
                "moment",
                "lodash",
                "ramda",
            ],
        },
        output: {
            path: path.join(__dirname, "../"),
            filename: "packed.js"
        },
        devtool: "source-map",
        plugins: [
            new webpack.LoaderOptionsPlugin({
                debug: true
            }),
            new webpack.optimize.CommonsChunkPlugin({
                name: "vendor",
                filename: "vendor.js"
            }),
            new webpack.ProvidePlugin({
                $: "jquery",
                jQuery: "jquery",
                "window.jQuery": "jquery",
                "window.jquery": "jquery",
            }),
        ],
        resolve:
        {
            alias: {
            }
        },
        module: {
            rules: [
                {
                    test: /^((?!\.spec\.ts).)*.ts$/,
                    use: [
                        {
                            loader: "awesome-typescript-loader"
                        }
                    ],
                    exclude: /(node_modules)/
                },
            ]
        }
    };
    
    module.exports = configuration;
    

    I am getting this error? application.ts is in ./scripts/application.ts (same directory as webpack.config.js)

    ERROR in Entry module not found: Error: Can't resolve 'application.ts' in 'C:\Projects\Github\Aureus\Aureus.Web\scripts'
    resolve 'application.ts' in 'C:\Projects\Github\Aureus\Aureus.Web\scripts'
      Parsed request is a module
      using description file: C:\Projects\Github\Aureus\Aureus.Web\package.json (relative path: ./scripts)
        Field 'browser' doesn't contain a valid alias configuration
      after using description file: C:\Projects\Github\Aureus\Aureus.Web\package.json (relative path: ./scripts)
        resolve as module
          C:\Projects\Github\Aureus\Aureus.Web\scripts\node_modules doesn't exist or is not a directory
          C:\Projects\Github\Aureus\node_modules doesn't exist or is not a directory
          C:\Projects\Github\node_modules doesn't exist or is not a directory
          C:\Projects\node_modules doesn't exist or is not a directory
          C:\node_modules doesn't exist or is not a directory
          looking for modules in C:\Projects\Github\Aureus\Aureus.Web\node_modules
            using description file: C:\Projects\Github\Aureus\Aureus.Web\package.json (relative path: ./node_modules)
              Field 'browser' doesn't contain a valid alias configuration
            after using description file: C:\Projects\Github\Aureus\Aureus.Web\package.json (relative path: ./node_modules)
              using description file: C:\Projects\Github\Aureus\Aureus.Web\package.json (relative path: ./node_modules/application.ts)
                no extension
                  Field 'browser' doesn't contain a valid alias configuration
                  C:\Projects\Github\Aureus\Aureus.Web\node_modules\application.ts doesn't exist
                .js
                  Field 'browser' doesn't contain a valid alias configuration
                  C:\Projects\Github\Aureus\Aureus.Web\node_modules\application.ts.js doesn't exist
                .json
                  Field 'browser' doesn't contain a valid alias configuration
                  C:\Projects\Github\Aureus\Aureus.Web\node_modules\application.ts.json doesn't exist
                as directory
                  C:\Projects\Github\Aureus\Aureus.Web\node_modules\application.ts doesn't exist