1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
lens/packages/infrastructure/webpack
Janne Savolainen a7181047d5
Fix windows not being able to build new Feature packages (#7220)
* Add missing dev script

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Inline all shared scripts to make them work in all environments

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Switch to using deterministic fake for path.join in unit test

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

* Make multi export config for webpack not fail when used in windows

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>

---------

Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
2023-02-23 10:54:35 +02:00
..
src Fix windows not being able to build new Feature packages (#7220) 2023-02-23 10:54:35 +02:00
index.js Add package for sharing webpack configurations for upcoming Features (#7199) 2023-02-22 12:28:07 +02:00
jest.config.js Add package for sharing webpack configurations for upcoming Features (#7199) 2023-02-22 12:28:07 +02:00
package.json Fix windows not being able to build new Feature packages (#7220) 2023-02-23 10:54:35 +02:00
README.md Add package for sharing webpack configurations for upcoming Features (#7199) 2023-02-22 12:28:07 +02:00

@k8slens/webpack

This package contains webpack configurations for Lens packages.

Install

$ npm install @k8slens/webpack

Features

Configurations

Node package

This configuration should be used when creating package that will be executed within Node environment.

webpack.config.js

module.exports = require("@k8slens/webpack").configForNode;

React package

This configuration should be used when creating package tha will be executed within Browser environment.

webpack.config.js

module.exports = require("@k8slens/webpack").configForReact;

Multi export package

This configuration should be used when package contains multiple entrypoint e.g. for different environments. You need to add lensMultiExportConfig to package.json with configuration. Note that also exports property needs to be set, but the correct values are generated from lensMultiExportConfig when using lens-build -script.

webpack.config.js

const packageJson = require("./package.json");

module.exports = require("@k8slens/webpack").getMultiExportConfig(packageJson);

package.json

{
  "lensMultiExportConfig": {
    "./main": {
      "buildType": "node",
      "entrypoint": "./src/main/index.ts"
    },
    "./renderer": {
      "buildType": "react",
      "entrypoint": "./src/renderer/index.ts"
    }
  },

  "exports": {
    "./main": {
      "types": "./dist/main/index.d.ts",
      "require": "./dist/main/index.js",
      "import": "./dist/main/index.js",
      "default": "./dist/main/index.js"
    },
    "./renderer": {
      "types": "./dist/renderer/index.d.ts",
      "require": "./dist/renderer/index.js",
      "import": "./dist/renderer/index.js",
      "default": "./dist/renderer/index.js"
    }
  }
}

Scripts

  1. lens-build which builds the packages
  2. lens-remove-build which removes the build directory from packages. It's useful for cleaning up.