Add StimulusJS integration.

This commit is contained in:
Jerome Caisip 2019-09-13 11:58:23 +08:00
parent bb6320efc8
commit 6c05417b90
9 changed files with 107 additions and 0 deletions

View File

@ -121,6 +121,7 @@ Listed in alphabetical order.
Jan Van Bruggen `@jvanbrug`_
Jelmer Draaijer `@foarsitter`_
Jens Nilsson `@phiberjenz`_
Jerome Caisip `@jeromecaisip`_
Jerome Leclanche `@jleclanche`_ @Adys
Jimmy Gitonga `@afrowave`_ @afrowave
John Cass `@jcass77`_ @cass_john
@ -276,6 +277,7 @@ Listed in alphabetical order.
.. _@jangeador: https://github.com/jangeador
.. _@jazztpt: https://github.com/jazztpt
.. _@jcass77: https://github.com/jcass77
.. _@jeromecaisip: https://github.com/jeromecaisip
.. _@jleclanche: https://github.com/jleclanche
.. _@juliocc: https://github.com/juliocc
.. _@jvanbrug: https://github.com/jvanbrug

View File

@ -35,6 +35,7 @@
],
"custom_bootstrap_compilation": "n",
"use_compressor": "n",
"use_stimulusJS": "n",
"use_celery": "n",
"use_mailhog": "n",
"use_sentry": "n",

View File

@ -78,6 +78,9 @@ custom_bootstrap_compilation:
use_compressor:
Indicates whether the project should be configured to use `Django Compressor`_.
use_stimulusJS:
Indicates whether the project should be configured to use `Stimulus JS`_.
use_celery:
Indicates whether the project should be configured to use Celery_.
@ -138,3 +141,6 @@ debug:
.. _Heroku: https://github.com/heroku/heroku-buildpack-python
.. _Travis CI: https://travis-ci.org/
.. _Stimulus JS: https://stimulusjs.org/

View File

@ -279,6 +279,10 @@ def remove_node_dockerfile():
shutil.rmtree(os.path.join("compose", "local", "node"))
def remove_stimulus_js_files():
shutil.rmtree(os.path.join("{{cookiecutter.project_slug}}", "static", "{{cookiecutter.project_slug}}"))
def main():
debug = "{{ cookiecutter.debug }}".lower() == "y"
@ -342,6 +346,9 @@ def main():
if "{{ cookiecutter.use_travisci }}".lower() == "n":
remove_dottravisyml_file()
if "{{ cookiecutter.use_stimulusJS }}".lower() == "n":
remove_stimulus_js_files()
print(SUCCESS + "Project initialized, keep up the good work!" + TERMINATOR)

View File

@ -0,0 +1,24 @@
{
"name": "static",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"dev": "webpack --watch --config webpack.config.dev.js",
"build": "webpack --config webpack.config.prod.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/core": "^7.4.5",
"@babel/preset-env": "^7.4.5",
"axios": "^0.19.0",
"babel-loader": "^8.0.6",
"babel-plugin-transform-class-properties": "^6.24.1",
"stimulus": "^1.1.1",
"webpack": "^4.34.0",
"webpack-cli": "^3.3.4"
},
"dependencies": {}
}

View File

@ -0,0 +1,5 @@
import {Controller} from "stimulus"
export default class extends Controller {
}

View File

@ -0,0 +1,6 @@
import {Application} from "stimulus"
import {definitionsFromContext} from "stimulus/webpack-helpers"
const application = Application.start();
const context = require.context("./controllers", true, /\.js$/);
application.load(definitionsFromContext(context));

View File

@ -0,0 +1,51 @@
const path = require('path');
module.exports = {
entry: {
'home': './src/pages/home/index.js',
},
output: {
filename: '[name].js',
path: path.resolve(__dirname, 'dist'),
publicPath: 'static/'
},
mode: 'development',
optimization: {
splitChunks: {
minSize: 0,
cacheGroups: {
commons: {
name: 'commons',
chunks: 'all',
}
}
}
},
module: {
rules: [
{
test: /\.(png|jpg)$/,
use: [
'file-loader'
]
},
{
test: /\.css$/,
use: [
'css-loader',
]
},
{
test: /\.js$/,
exclude: /node_modules/,
use: {
loader: "babel-loader",
options: {
presets: ['@babel/env'],
plugins: ['transform-class-properties']
}
}
},
]
}
};

View File

@ -0,0 +1,5 @@
const path = require('path');
const dev_exports = require('./webpack.config.dev');
dev_exports['mode'] = 'production';
module.exports = dev_exports;