Skip to content

Commit 8e57999

Browse files
committed
Set up System module asset compilation with Mix
- Copied restructure from the "wip/inspector-rewrite" branch. - Added manifest and vendor files in "{% snowboard %}" tag. - Used standard Mix config path to auto-register the module.
1 parent 107db21 commit 8e57999

25 files changed

Lines changed: 994 additions & 77 deletions

.github/workflows/code-quality.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,10 +51,10 @@ jobs:
5151
with:
5252
node-version: 12
5353

54-
- name: Install Node dependencies
55-
working-directory: ./modules/system/assets/js/snowboard
54+
- name: Install Node dependencies for System Module
55+
working-directory: ./modules/system
5656
run: npm install
5757

58-
- name: Run code quality checks
59-
working-directory: ./modules/system/assets/js/snowboard
58+
- name: Run code quality checks on System Module
59+
working-directory: ./modules/system
6060
run: npx eslint .

.vscode/settings.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,9 @@
2525
"**/themes/*/layouts/*.htm": "wintercms",
2626
"**/themes/*/pages/**/*.htm": "wintercms",
2727
"**/themes/*/partials/**/*.htm": "wintercms"
28-
}
28+
},
29+
"eslint.validate": [
30+
"javascript",
31+
"vue"
32+
]
2933
}

modules/cms/twig/SnowboardNode.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,28 @@ public function compile(TwigCompiler $compiler)
4343

4444
$moduleMap = [
4545
'base' => (Config::get('app.debug', false) === true) ? 'snowboard.base.debug' : 'snowboard.base',
46+
'vendor' => 'snowboard.vendor',
4647
'request' => 'snowboard.request',
4748
'attr' => 'snowboard.data-attr',
4849
'extras' => 'snowboard.extras',
4950
];
51+
$manifestPath = Request::getBasePath() . '/modules/system/assets/js/build/manifest.js';
5052
$basePath = Request::getBasePath() . '/modules/system/assets/js/snowboard/build/';
5153

5254
if (!static::$baseLoaded) {
55+
// Add manifest and vendor files
56+
$compiler
57+
->write("echo '<script data-module=\"snowboard-manifest\" src=\"${manifestPath}${cacheBust}\"></script>'.PHP_EOL;" . PHP_EOL);
58+
$vendorJs = $moduleMap['vendor'];
59+
$compiler
60+
->write("echo '<script data-module=\"snowboard-vendor\" src=\"${basePath}${vendorJs}.js${cacheBust}\"></script>'.PHP_EOL;" . PHP_EOL);
61+
5362
// Add base script
5463
$baseJs = $moduleMap['base'];
5564
$baseUrl = Url::to('/');
5665
$compiler
5766
->write("echo '<script data-module=\"snowboard-base\" data-base-url=\"${baseUrl}\" src=\"${basePath}${baseJs}.js${cacheBust}\"></script>'.PHP_EOL;" . PHP_EOL);
67+
5868
static::$baseLoaded = true;
5969
}
6070

modules/system/.eslintignore

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Ignore build files
2+
**/node_modules/**
3+
build/*.js
4+
**/build/*.js
5+
**/mix.webpack.js
6+
7+
# Ignore all JS except for Mix-based assets
8+
assets/js
9+
!assets/js/snowboard
10+
assets/ui
11+
assets/vendor

modules/system/.eslintrc.json

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"env": {
3+
"es6": true,
4+
"browser": true
5+
},
6+
"globals": {
7+
"Snowboard": "writable"
8+
},
9+
"extends": [
10+
"airbnb-base",
11+
"plugin:vue/vue3-recommended"
12+
],
13+
"rules": {
14+
"class-methods-use-this": ["off"],
15+
"indent": ["error", 4, {
16+
"SwitchCase": 1
17+
}],
18+
"max-len": ["off"],
19+
"new-cap": ["error", { "properties": false }],
20+
"no-alert": ["off"],
21+
"no-param-reassign": ["error", {
22+
"props": false
23+
}],
24+
"vue/html-indent": ["error", 4],
25+
"vue/html-self-closing": ["error", {
26+
"html": {
27+
"void": "never",
28+
"normal": "any",
29+
"component": "always"
30+
},
31+
"svg": "always",
32+
"math": "always"
33+
}],
34+
"vue/multi-word-component-names": ["off"]
35+
}
36+
}

modules/system/.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# System module ignores
2+
3+
# Ignore Mix files
4+
node_modules
5+
package-lock.json
6+
mix.webpack.js

modules/system/ServiceProvider.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -568,10 +568,6 @@ protected function registerAssetBundles()
568568
$combiner->registerBundle('~/modules/system/assets/less/framework.extras.less');
569569
$combiner->registerBundle('~/modules/system/assets/less/snowboard.extras.less');
570570
});
571-
572-
MixAssets::registerCallback(function ($mix) {
573-
$mix->registerPackage('snowboard', '~/modules/system/assets/js/snowboard/winter.mix.js');
574-
});
575571
}
576572

577573
/**

modules/system/assets/js/build/manifest.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

modules/system/assets/js/build/system.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)