Add shebang to output file so a shell script is no longer needed

This commit is contained in:
Marko Korhonen 2023-11-23 17:38:30 +02:00
parent 4b8c8be226
commit cd891bf6a0
Signed by: FunctionalHacker
GPG key ID: A7F78BCB859CD890
5 changed files with 48 additions and 7 deletions

View file

@ -13,6 +13,7 @@ node_modules:
build: node_modules build: node_modules
npm run build npm run build
chmod +x dist/wtc
clean: clean:
rm -r dist node_modules rm -r dist node_modules

View file

@ -1,4 +0,0 @@
#!/bin/sh
DIR="$(dirname "$(readlink -f "$0")")"
node "$DIR/../dist/wtc.js" "$@"

42
package-lock.json generated
View file

@ -26,6 +26,7 @@
"@typescript-eslint/eslint-plugin": "^6.10.0", "@typescript-eslint/eslint-plugin": "^6.10.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.0.0",
"rollup": "^4.5.1", "rollup": "^4.5.1",
"rollup-plugin-add-shebang": "^0.3.1",
"tslib": "^2.6.2" "tslib": "^2.6.2"
} }
}, },
@ -1643,6 +1644,15 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/magic-string": {
"version": "0.25.9",
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz",
"integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==",
"dev": true,
"dependencies": {
"sourcemap-codec": "^1.4.8"
}
},
"node_modules/merge2": { "node_modules/merge2": {
"version": "1.4.1", "version": "1.4.1",
"resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
@ -1958,6 +1968,31 @@
"fsevents": "~2.3.2" "fsevents": "~2.3.2"
} }
}, },
"node_modules/rollup-plugin-add-shebang": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/rollup-plugin-add-shebang/-/rollup-plugin-add-shebang-0.3.1.tgz",
"integrity": "sha512-tKONSgKoVw9Om1cp1CnAlPQ9nsHBzu8fInKObX3zT5KZVoAJtslD1aBL84lJuKLeh+L28dB26CBBeYT+doTMLg==",
"dev": true,
"dependencies": {
"magic-string": "^0.25.3",
"rollup-pluginutils": "^2.8.1"
}
},
"node_modules/rollup-pluginutils": {
"version": "2.8.2",
"resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz",
"integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==",
"dev": true,
"dependencies": {
"estree-walker": "^0.6.1"
}
},
"node_modules/rollup-pluginutils/node_modules/estree-walker": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz",
"integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==",
"dev": true
},
"node_modules/run-parallel": { "node_modules/run-parallel": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@ -2082,6 +2117,13 @@
"source-map": "^0.6.0" "source-map": "^0.6.0"
} }
}, },
"node_modules/sourcemap-codec": {
"version": "1.4.8",
"resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz",
"integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==",
"deprecated": "Please use @jridgewell/sourcemap-codec instead",
"dev": true
},
"node_modules/string-width": { "node_modules/string-width": {
"version": "4.2.3", "version": "4.2.3",
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",

View file

@ -15,7 +15,7 @@
"main": "src/main.ts", "main": "src/main.ts",
"type": "module", "type": "module",
"bin": { "bin": {
"wtc": "bin/wtc" "wtc": "dist/wtc"
}, },
"scripts": { "scripts": {
"build": "rollup -c" "build": "rollup -c"
@ -34,6 +34,7 @@
"@typescript-eslint/eslint-plugin": "^6.10.0", "@typescript-eslint/eslint-plugin": "^6.10.0",
"eslint-config-prettier": "^9.0.0", "eslint-config-prettier": "^9.0.0",
"rollup": "^4.5.1", "rollup": "^4.5.1",
"rollup-plugin-add-shebang": "^0.3.1",
"tslib": "^2.6.2" "tslib": "^2.6.2"
}, },
"dependencies": { "dependencies": {

View file

@ -1,14 +1,15 @@
import typescript from '@rollup/plugin-typescript'; import typescript from '@rollup/plugin-typescript';
import terser from '@rollup/plugin-terser'; import terser from '@rollup/plugin-terser';
import shebang from 'rollup-plugin-add-shebang';
/** @type {import('rollup').RollupOptions} */ /** @type {import('rollup').RollupOptions} */
const config = { const config = {
input: 'src/main.ts', input: 'src/main.ts',
output: { output: {
format: 'esm', format: 'esm',
file: 'dist/wtc.js', file: 'dist/wtc',
}, },
plugins: [typescript(), terser()], plugins: [typescript(), terser(), shebang({ include: 'dist/wtc' })],
}; };
export default config; export default config;