[pve-devel] [PATCH v2 1/3] ship proper nodejs module 'pve-eslint'

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Aug 25 18:38:19 CEST 2021


On 19/07/2021 12:31, Dominik Csapak wrote:
> instead of concatenating the eslint module into our app.js, ship
> a 'pve-eslint' module that exports the built eslint module
> 
> to do this, we have to leave the module type on 'umd' instead of
> changing to 'var' so that nodejs can properly import it.
> 
> Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
> ---
>  Makefile                                |  2 +-

Does not applies here, did not really investigated yet though:

Applying: ship proper nodejs module 'pve-eslint'
Using index info to reconstruct a base tree...               
error: removal patch leaves file contents
error: src/Makefile: patch does not apply


>  debian/control                          |  7 +++++--
>  debian/dirs                             |  1 +
>  debian/links                            |  1 +
>  debian/rules                            |  5 ++++-
>  patches/0001-adapt-webpack-config.patch | 19 +++++--------------
>  src/Makefile                            | 15 ---------------
>  src/{ => bin}/app.js                    |  5 ++++-
>  src/index.js                            |  3 +++
>  src/package.json                        |  9 +++++++++
>  10 files changed, 33 insertions(+), 34 deletions(-)
>  create mode 100644 debian/dirs
>  create mode 100644 debian/links
>  delete mode 100644 src/Makefile
>  rename src/{ => bin}/app.js (99%)
>  create mode 100644 src/index.js
>  create mode 100644 src/package.json
> 
> diff --git a/Makefile b/Makefile
> index 9dbe3d0..2a6666c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -49,7 +49,7 @@ download:
>  # NOTE: needs npm installed, downloads packages from npm
>  .PHONY: buildupstream
>  buildupstream: ${BUILDSRC}
> -	cp ${BUILDSRC}/build/eslint.js ${SRCDIR}/eslint.js
> +	cp ${BUILDSRC}/build/eslint.js ${SRCDIR}/lib/eslint.js
>  
>  ${BUILDSRC}: ${UPSTREAM} patches
>  	rm -rf $@
> diff --git a/debian/control b/debian/control
> index 3f9b014..7ea3664 100644
> --- a/debian/control
> +++ b/debian/control
> @@ -2,13 +2,16 @@ Source: pve-eslint
>  Section: devel
>  Priority: optional
>  Maintainer: Proxmox Support Team <support at proxmox.com>
> -Build-Depends: debhelper (>= 12~)
> +Build-Depends: debhelper (>= 12~),
> +               nodejs,
> +               pkg-js-tools (>= 0.8.11)
>  Standards-Version: 4.3.0
>  Homepage: http://www.proxmox.com
>  
>  Package: pve-eslint
>  Architecture: all
> -Depends: node-commander, node-colors, nodejs, ${misc:Depends},
> +Depends: node-commander, node-colors, nodejs (>= ${nodejs:Version}), ${misc:Depends},
> +Provides: ${nodejs:Provides}
>  Description: ESLint for Proxmox Virtual Environment development
>   This package contains a version of eslint used to develop the
>   Proxmox Virtual Environment, and other Proxmox projects, web GUI.
> diff --git a/debian/dirs b/debian/dirs
> new file mode 100644
> index 0000000..e772481
> --- /dev/null
> +++ b/debian/dirs
> @@ -0,0 +1 @@
> +usr/bin
> diff --git a/debian/links b/debian/links
> new file mode 100644
> index 0000000..99342ed
> --- /dev/null
> +++ b/debian/links
> @@ -0,0 +1 @@
> +usr/share/nodejs/pve-eslint/bin/app.js usr/bin/eslint
> diff --git a/debian/rules b/debian/rules
> index 2d33f6a..b4c4090 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -1,4 +1,7 @@
>  #!/usr/bin/make -f
>  
>  %:
> -	dh $@
> +	dh $@ --with nodejs
> +
> +execute_after_dh_fixperms:
> +	chmod --recursive a+x -- debian/*/usr/share/nodejs/pve-eslint/bin/*
> diff --git a/patches/0001-adapt-webpack-config.patch b/patches/0001-adapt-webpack-config.patch
> index 4698e74..b0201e1 100644
> --- a/patches/0001-adapt-webpack-config.patch
> +++ b/patches/0001-adapt-webpack-config.patch
> @@ -3,21 +3,20 @@ From: Dominik Csapak <d.csapak at proxmox.com>
>  Date: Thu, 2 Apr 2020 07:10:18 +0000
>  Subject: [PATCH] adapt webpack config
>  
> -changes to 'var' from 'umd' since we want to use it in the same file
>  adds 'cli-engine' to build (we use it in our wrapper)
>  and target 'node' since we will use it on the cli
>  
>  Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
>  ---
> - webpack.config.js | 6 +++---
> - 1 file changed, 3 insertions(+), 3 deletions(-)
> + webpack.config.js | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
>  
>  diff --git a/webpack.config.js b/webpack.config.js
> -index 29d60cb4..95027075 100644
> +index a22c99b..9209159 100644
>  --- a/webpack.config.js
>  +++ b/webpack.config.js
> -@@ -2,14 +2,14 @@
> - 
> +@@ -4,8 +4,9 @@ const NodePolyfillPlugin = require("node-polyfill-webpack-plugin");
> + /** @type {import("webpack").Configuration} */
>   module.exports = {
>       mode: "none",
>  +    target: "node",
> @@ -27,13 +26,5 @@ index 29d60cb4..95027075 100644
>       },
>       output: {
>           filename: "[name].js",
> -         library: "[name]",
> --        libraryTarget: "umd",
> --        globalObject: "this"
> -+        libraryTarget: "var"
> -     },
> -     module: {
> -         rules: [
>  -- 
>  2.20.1
> -
> diff --git a/src/Makefile b/src/Makefile
> deleted file mode 100644
> index bef1c57..0000000
> diff --git a/src/app.js b/src/bin/app.js
> similarity index 99%
> rename from src/app.js
> rename to src/bin/app.js
> index 9226234..8a28923 100644
> --- a/src/app.js
> +++ b/src/bin/app.js
> @@ -1,9 +1,12 @@
> -(function() {
> +#!/usr/bin/env node
> +
> +(async function(){
>  'use strict';
>  
>  const path = require('path');
>  const color = require('colors');
>  const program = require('commander');
> +const eslint = require('pve-eslint');
>  
>  program
>      .usage('[options] [<file(s) ...>]')
> diff --git a/src/index.js b/src/index.js
> new file mode 100644
> index 0000000..01b9a1d
> --- /dev/null
> +++ b/src/index.js
> @@ -0,0 +1,3 @@
> +const eslint = require('./lib/eslint.js');
> +
> +module.exports = eslint;
> diff --git a/src/package.json b/src/package.json
> new file mode 100644
> index 0000000..b08184b
> --- /dev/null
> +++ b/src/package.json
> @@ -0,0 +1,9 @@
> +{
> +    "name": "pve-eslint",
> +    "version": "7.28.0",
> +    "files": [
> +	"index.js",
> +	"bin/app.js",
> +	"lib/eslint.js"
> +    ]
> +}
> 






More information about the pve-devel mailing list