Skip to content

Commit 43d889d

Browse files
committed
Update to version 1.4.0 with new features and bug fixes
1 parent d01bcd4 commit 43d889d

File tree

19 files changed

+5144
-15457
lines changed

19 files changed

+5144
-15457
lines changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
MIT License
22

3-
Copyright (c) 2019 Samet Tarim
3+
Copyright (c) 2019 prod3v3loper
44

55
Permission is hereby granted, free of charge, to any person obtaining a copy
66
of this software and associated documentation files (the "Software"), to deal

app/index.js

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,37 @@
11
// DEFAULTS
2-
const createGLOBALSjson = require("./settings/defaults/global");
3-
const createPackageJson = require("./settings/defaults/package-json");
4-
const createTsconfig = require("./settings/defaults/tsconfig-json");
5-
const createBabelJson = require("./settings/defaults/babel-json");
6-
const createComposerJson = require("./settings/defaults/composer-json");
2+
import createGLOBALSjson from "./settings/defaults/global.js";
3+
import createPackageJson from "./settings/defaults/package-json.js";
4+
import createTsconfig from "./settings/defaults/tsconfig-json.js";
5+
import createBabelJson from "./settings/defaults/babel-json.js";
6+
import createComposerJson from "./settings/defaults/composer-json.js";
77
// Yeoman
8-
const Generator = require("yeoman-generator");
8+
import Generator from "yeoman-generator";
99
// Helper for create empty folders
10-
// const mkdirp = require( 'mkdirp' );
10+
// import mkdirp from 'mkdirp';
1111
// Scaffold
12-
// const List = require("@webpack-cli/webpack-scaffold").List;
13-
// const Input = require('@webpack-cli/webpack-scaffold').Input;
12+
// import { List, Input } from "@webpack-cli/webpack-scaffold";
1413
// Default abstracted configs
15-
const createCommonConfig = require("./settings/configs/common");
16-
const createProConfig = require("./settings/configs/pro");
17-
const createDevConfig = require("./settings/configs/dev");
14+
import createCommonConfig from "./settings/configs/common.js";
15+
import createProConfig from "./settings/configs/pro.js";
16+
import createDevConfig from "./settings/configs/dev.js";
1817

1918
/**
2019
* Yeoman Webpack Scaffolding
2120
*
2221
* @author prod3v3loper
2322
* @copyright Copyright (C) 2021 prod3v3loper - All rights reserved
2423
* @license MIT
25-
* @version 1.3.7
26-
* @since 1.0
24+
* @version 1.4.0
25+
* @since 1.0.0
2726
* @package MELABUAI
2827
* @subpackage generator-webpack-preact
28+
* @link https://www.prod3v3loper.com
2929
*
3030
* @see https://yeoman.io/authoring/index.html
3131
* @see https://github.com/evenstensberg/webpack-scaffold-demo
3232
* @see https://yeoman.io/authoring/dependencies.html
3333
*/
34-
module.exports = class WebpackGenerator extends Generator {
34+
export default class WebpackGenerator extends Generator {
3535
/**
3636
* Constructor
3737
*
@@ -60,6 +60,7 @@ module.exports = class WebpackGenerator extends Generator {
6060
// And you can then access it later; e.g.
6161
// this.log(this.options.name);
6262

63+
opts.env = opts.env || {};
6364
opts.env.configuration = {
6465
// This create the webpack.config.js
6566
// This property says set name webpack."config".js
@@ -80,6 +81,8 @@ module.exports = class WebpackGenerator extends Generator {
8081
configName: "",
8182
},
8283
};
84+
85+
this.options.env = opts.env;
8386
}
8487

8588
/**

app/settings/configs/common.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* webpack.config.js
33
*/
44
// Get the dev plugins
5-
const comPlugins = require("../plugins/common");
5+
import comPlugins from "../plugins/common.js";
66

7-
module.exports = function createComConfig(answer) {
7+
export default function createComConfig(answer) {
88
let comConf = {
99
entry: {
1010
index: answer.entry ? "'" + answer.entry + "'" : "'./src/index.jsx'",

app/settings/configs/dev.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* webpack.dev.js
33
*/
44
// Get the dev plugins
5-
const devPlugins = require("../plugins/dev");
5+
import devPlugins from "../plugins/dev.js";
66

7-
module.exports = function createDevConfig(answer) {
7+
export default function createDevConfig(answer) {
88
let devConf = {
99
mode: "'development'",
1010
optimization: {

app/settings/configs/pro.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
* webpack.pro.js
33
*/
44
// Get the pro plugins
5-
// const proPlugins = require("../plugins/pro");
5+
import proPlugins from "../plugins/pro.js";
66

7-
module.exports = function createProConfig(answer) {
7+
export default function createProConfig(answer) {
88
let proConf = {
99
mode: "'production'",
1010
optimization: {

app/settings/defaults/babel-json.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22

33
// babel.config.json
4-
module.exports = function createBabelJson(answer) {
4+
export default function createBabelJson(answer) {
55
const babelJsonConf = {
66
// Example, we have our config for that in webpack config
77
// "targets": {

app/settings/defaults/composer-json.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22

3-
module.exports = function createComposerJson(answer) {
3+
export default function createComposerJson(answer) {
44
const composerJsonConf = {
55
// "autoload": {
66
// "psr-4": { "": "src/" }

app/settings/defaults/global.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* Extra config file, for Base and Globals
33
*/
44

5-
module.exports = function createGlobalJson(answer) {
5+
export default function createGlobalJson(answer) {
66
let globalJsonConf = {
77
baseURL: "https://www.prod3v3loper.com",
88
logoURL: "",

app/settings/defaults/package-json.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* @see https://yeoman.io/authoring/dependencies.html
66
*/
77

8-
module.exports = function createPackageJson(answer) {
8+
export default function createPackageJson(answer) {
99
const pkgJsonConf = {
1010
name: answer.name ? answer.name : "generator-webpack-preact",
1111
description: answer.description
@@ -37,35 +37,35 @@ module.exports = function createPackageJson(answer) {
3737
? "'" + answer.repo + "'"
3838
: "https://github.com/prod3v3loper/generator-webpack-preact.git",
3939
},
40+
type: "module",
4041
scripts: {
4142
dev: "webpack serve --open --config webpack.dev.js",
4243
prod: "webpack --config webpack.prod.js",
43-
watch: "npx webpack watch --mode development"
4444
},
4545
devDependencies: {
46-
"webpack": "^5.81.0",
47-
"webpack-cli": "^5.0.2",
48-
"webpack-dev-server": "^4.13.3",
49-
"webpack-merge": "^5.8.0",
50-
"css-loader": "^6.7.3",
51-
"node-sass": "^8.0.0",
52-
"sass-loader": "^13.2.2",
53-
"style-loader": "^3.3.2",
46+
"webpack": "^5.91.0",
47+
"webpack-cli": "^5.1.4",
48+
"webpack-dev-server": "^5.0.4",
49+
"webpack-merge": "^5.10.0",
50+
"css-loader": "^7.1.2",
51+
"sass": "^1.77.4",
52+
"sass-loader": "^14.2.1",
53+
"style-loader": "^4.0.0",
5454
"file-loader": "^6.2.0",
55-
"ts-loader": "^9.4.2",
56-
"typescript": "^5.0.4",
55+
"ts-loader": "^9.5.1",
56+
"typescript": "^5.4.5",
5757
"clean-webpack-plugin": "^4.0.0",
58-
"html-webpack-plugin": "^5.5.1",
59-
"@babel/core": "^7.21.5",
60-
"@babel/plugin-transform-react-jsx": "^7.21.5",
58+
"html-webpack-plugin": "^5.6.0",
59+
"@babel/core": "^7.24.7",
60+
"@babel/plugin-transform-react-jsx": "^7.24.7",
6161
"@babel/plugin-proposal-class-properties": "^7.18.6",
6262
"@babel/plugin-proposal-object-rest-spread": "^7.20.7",
63-
"@babel/preset-env": "^7.21.5",
64-
"@babel/preset-typescript": "^7.21.5",
65-
"babel-loader": "^9.1.2"
63+
"@babel/preset-env": "^7.24.7",
64+
"@babel/preset-typescript": "^7.24.7",
65+
"babel-loader": "^9.1.3"
6666
},
6767
dependencies: {
68-
"preact": "^10.13.2",
68+
"preact": "^10.22.0",
6969
"redux-zero": "^5.1.7"
7070
}
7171
};

app/settings/defaults/tsconfig-json.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@
55
* @see https://www.typescriptlang.org/docs/handbook/compiler-options.html
66
*/
77

8-
module.exports = function createTsconfigJson(answer) {
8+
export default function createTsconfigJson(answer) {
99
let tsJsonConf = {
1010
// https://www.typescriptlang.org/docs/handbook/compiler-options.html
1111
compilerOptions: {
12+
forceConsistentCasingInFileNames: true,
1213
strict: true,
1314
/* Enable all strict type-checking options. */
1415
// "allowSyntheticDefaultImports": true,
@@ -18,13 +19,17 @@ module.exports = function createTsconfigJson(answer) {
1819
preserveConstEnums: true,
1920
target: answer.target ? "'" + answer.target + "'" : "ES6",
2021
/* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', or 'ESNEXT'. */
21-
module: "commonjs",
22+
module: "ESNext",
2223
/* Specify module code generation: 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
2324
outDir: "./dist",
2425
/* Redirect output structure to the directory. */
2526
jsx: "react",
2627
jsxFactory: "h",
2728
allowJs: true,
29+
moduleResolution: "node",
30+
esModuleInterop: true,
31+
skipLibCheck: true,
32+
allowSyntheticDefaultImports: true
2833
// "lib": [
2934
// "es6",
3035
// "dom"

app/settings/plugins/common.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
* @see https://github.com/jantimon/html-webpack-plugin#minification
66
*/
77

8-
module.exports = function commonPlugins(answer) {
8+
export default function commonPlugins(answer) {
99
return [
1010
/**
1111
* All files inside webpack's output.path directory will be removed once, but the

app/settings/plugins/dev.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
* To do this you add in generator.js to topScopes your plugin
55
*/
66

7-
module.exports = function devPlugins(answer) {
7+
export default function devPlugins(answer) {
88
return ["new webpack.HotModuleReplacementPlugin()"];
99
};

app/settings/plugins/pro.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
* To do this you add in generator.js to topScopes your plugin
55
*/
66

7-
module.exports = function proPlugins(answer) {
7+
export default function proPlugins(answer) {
88
return [""];
99
};

app/templates/configs/webpack.config.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
const path = require("path");
2-
const { CleanWebpackPlugin } = require("clean-webpack-plugin");
3-
const HtmlWebpackPlugin = require("html-webpack-plugin");
1+
import path from "path";
2+
import { fileURLToPath } from "url";
3+
import { CleanWebpackPlugin } from "clean-webpack-plugin";
4+
import HtmlWebpackPlugin from "html-webpack-plugin";
5+
6+
// Simuliere __dirname in ES-Modulen
7+
const __filename = fileURLToPath(import.meta.url);
8+
const __dirname = path.dirname(__filename);
49

510
/**
611
* Thats your Webpack common config file
712
*/
8-
module.exports = {
13+
export default {
914

1015
entry: {
1116
index: "./src/index.tsx"

app/templates/configs/webpack.dev.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
1-
const path = require("path");
2-
const webpack = require("webpack");
3-
const { merge } = require("webpack-merge");
4-
const common = require("./webpack.config.js");
1+
import path from "path";
2+
import { fileURLToPath } from "url";
3+
import webpack from "webpack";
4+
import { merge } from "webpack-merge";
5+
import common from "./webpack.config.js";
6+
7+
// Simuliere __dirname in ES-Modulen
8+
const __filename = fileURLToPath(import.meta.url);
9+
const __dirname = path.dirname(__filename);
510

611
/**
712
* Thts your development config with hotmodule page reload
813
*
914
* npx webpack serve --config webpack.dev.js
1015
*/
11-
module.exports = merge(common, {
16+
export default merge(common, {
1217

1318
mode: "development",
1419

app/templates/configs/webpack.prod.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
1-
const path = require("path");
2-
const { merge } = require("webpack-merge");
3-
const common = require("./webpack.config.js");
1+
import path from "path";
2+
import { fileURLToPath } from "url";
3+
import { merge } from "webpack-merge";
4+
import common from "./webpack.config.js";
5+
6+
// Simuliere __dirname in ES-Modulen
7+
const __filename = fileURLToPath(import.meta.url);
8+
const __dirname = path.dirname(__filename);
49

510
/**
611
* Thats your production config
712
*
813
* $ npx webpack --config webpack.prod.js
914
*/
10-
module.exports = merge(common, {
15+
export default merge(common, {
1116

1217
mode: "production",
1318

0 commit comments

Comments
 (0)