tmpl-cli
api
docs
env
git
hbs
html
husky
jest
lintstaged
lisp
node
Summarynode initnode init -t
prettier
python
react
readme
schema
style
util
vue
web

$ tmpl node init

Initialize a node project.

Files

project
└─src
└──index.js
└─.babelrc
└─package.json
└─webpack.config.js

index.js

const main = () => {
console.log("Node Working");
};
if (require.main === module) {
main();
}

.babelrc

{
"presets": ["@babel/preset-env"]
}

package.json

{
"name": "project",
"version": "0.0.0",
"description": "",
"scripts": {
"start": "babel-node ./src/index.js"
},
"keywords": [],
"author": "developer<developer@developer.dev>",
"license": "ISC",
"dependencies": {},
"devDependencies": {
"@babel/core": "^7.12.13",
"@babel/node": "^7.12.13",
"@babel/preset-env": "^7.12.13",
"babel-core": "^7.0.0-bridge.0",
"babel-loader": "^8.2.2",
"webpack-cli": "^3.3.12",
"webpack": "^4.44.2"
}
}

webpack.config.js

// Tools
const path = require("path");
// Plugins
// Variables - Directory Target
const dir = path.resolve(__dirname);
const srcDir = path.join(dir, "src");
const distDir = path.join(dir, "dist");
const nodeModulesDir = path.join(dir, "node_modules");
// Variables - File Targets
const srcIndex = "index.js";
// Variables - Environment
const webpackMode = process.env.NODE_ENV === "production" ? "production" : "development";
const isProduction = webpackMode === "production";
// Main Webpack Config
module.exports = {
target: "node",
mode: webpackMode,
entry: path.join(srcDir, srcIndex),
output: {
path: path.resolve(distDir),
filename: "[name].js"
},
resolve: {
alias: [],
extensions: [".js", ".json"],
mainFields: ["main", "module"],
plugins: []
},
module: {
rules: [
{
test: /.(js|jsx)$/,
use: "babel-loader",
exclude: /node_modules/
}
]
},
plugins: []
};