a comparison of tools within the JavaScript ecosystem

feat: add library template `/libs/node-js-esm-webpack` (#42)

authored by samanthanguyen.me and committed by

GitHub 53571e66 eb4150d2

+84
+1
.github/workflows/node.yml
··· 35 35 - node-js-esm-rollup 36 36 - node-js-esm-tsc 37 37 - node-js-esm-vite 38 + - node-js-esm-webpack 38 39 - node-ts-esm-esbuild 39 40 - node-ts-esm-parcel 40 41 - node-ts-esm-rollup
+34
libs/node-js-esm-webpack/package.json
··· 1 + { 2 + "private": true, 3 + "version": "1.0.0", 4 + "name": "node-js-esm-webpack", 5 + "description": "Node, JavaScript (ESM), Webpack", 6 + "keywords": [ 7 + "node", 8 + "javascript", 9 + "esm", 10 + "webpack" 11 + ], 12 + "type": "module", 13 + "types": "./dist/index.d.ts", 14 + "exports": { 15 + ".": { 16 + "types": "./dist/index.d.ts", 17 + "require": "./dist/index.js" 18 + } 19 + }, 20 + "files": [ 21 + "dist" 22 + ], 23 + "scripts": { 24 + "build": "webpack --mode=production && npm run dts", 25 + "dts": "tsc", 26 + "prepublint": "npm run build", 27 + "publint": "publint ." 28 + }, 29 + "devDependencies": { 30 + "typescript": "^5.3.3", 31 + "webpack": "^5.90.0", 32 + "webpack-cli": "^5.1.4" 33 + } 34 + }
+3
libs/node-js-esm-webpack/src/index.js
··· 1 + export function greet(name) { 2 + return `Hello ${name}` 3 + }
+10
libs/node-js-esm-webpack/tsconfig.json
··· 1 + { 2 + "include": ["src"], 3 + "compilerOptions": { 4 + "allowJs": true, 5 + "declaration": true, 6 + "emitDeclarationOnly": true, 7 + "outDir": "dist", 8 + "declarationMap": true 9 + } 10 + }
+24
libs/node-js-esm-webpack/webpack.config.cjs
··· 1 + const path = require('path'); 2 + const isProduction = process.env.NODE_ENV == 'production'; 3 + 4 + /** @type {import('webpack').Configuration} */ 5 + const config = { 6 + experiments: { 7 + outputModule: true, 8 + }, 9 + devtool: 'inline-source-map', 10 + entry: './src/index.js', 11 + output: { 12 + path: path.resolve(__dirname, 'dist'), 13 + filename: 'index.js', 14 + clean: true, 15 + library: { 16 + type: 'module' 17 + } 18 + }, 19 + }; 20 + 21 + module.exports = () => { 22 + config.mode = isProduction ? 'production' : 'development'; 23 + return config; 24 + };
+12
package-lock.json
··· 101 101 "vite-plugin-dts": "^3.7.1" 102 102 } 103 103 }, 104 + "libs/node-js-esm-webpack": { 105 + "version": "1.0.0", 106 + "devDependencies": { 107 + "typescript": "^5.3.3", 108 + "webpack": "^5.90.0", 109 + "webpack-cli": "^5.1.4" 110 + } 111 + }, 104 112 "libs/node-ts-esm-esbuild": { 105 113 "version": "1.0.0", 106 114 "devDependencies": { ··· 5862 5870 }, 5863 5871 "node_modules/node-js-esm-vite": { 5864 5872 "resolved": "libs/node-js-esm-vite", 5873 + "link": true 5874 + }, 5875 + "node_modules/node-js-esm-webpack": { 5876 + "resolved": "libs/node-js-esm-webpack", 5865 5877 "link": true 5866 5878 }, 5867 5879 "node_modules/node-releases": {