mirror of
https://github.com/elementor/hello-theme.git
synced 2025-10-03 15:33:37 +08:00
New: Add Github actions lint + build [ARCH-38] (#159)
* New: Add Github actions lint + build [ARCH-38] * move to right folder * remove if * change name * remove unused code * fix * fix lint js * fix phplint + temp * change php * remove temp
This commit is contained in:
parent
1cc44a62eb
commit
36986aa3ee
16 changed files with 11977 additions and 117 deletions
21
.editorconfig
Normal file
21
.editorconfig
Normal file
|
@ -0,0 +1,21 @@
|
|||
# This file is for unifying the coding style for different editors and IDEs
|
||||
# editorconfig.org
|
||||
|
||||
# WordPress Coding Standards
|
||||
# https://make.wordpress.org/core/handbook/coding-standards/
|
||||
|
||||
root = true
|
||||
|
||||
[*]
|
||||
charset = utf-8
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
trim_trailing_whitespace = true
|
||||
indent_style = tab
|
||||
|
||||
[*.yml]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
47
.github/workflows/build.yml
vendored
Normal file
47
.github/workflows/build.yml
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
name: Build
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
|
||||
jobs:
|
||||
build_plugin:
|
||||
name: Build theme
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14.x
|
||||
- name: Cache node modules
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
- name: Install Dependencies
|
||||
run: npm ci
|
||||
- name: Bump version on push to release or develop
|
||||
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/heads/release/') || github.ref == 'refs/heads/develop')
|
||||
run: |
|
||||
npm config set git-tag-version false
|
||||
if [ "${GITHUB_REF:11}" == "develop" ];
|
||||
then npm version patch
|
||||
fi
|
||||
if [[ "${GITHUB_REF:11:7}" == "release" ]];
|
||||
then npm version minor
|
||||
fi
|
||||
- name: Build
|
||||
run: npm run zip
|
||||
- name: Upload zip file to GitHub actions artifact
|
||||
uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: hello-elementor
|
||||
path: hello-elementor.*.zip
|
||||
retention-days: 7
|
65
.github/workflows/lint.yml
vendored
Normal file
65
.github/workflows/lint.yml
vendored
Normal file
|
@ -0,0 +1,65 @@
|
|||
name: Lint
|
||||
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
eslint:
|
||||
name: ESLint
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 14.x
|
||||
- name: Cache node modules
|
||||
uses: actions/cache@v2
|
||||
env:
|
||||
cache-name: cache-node-modules
|
||||
with:
|
||||
path: ~/.npm
|
||||
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-build-${{ env.cache-name }}-
|
||||
${{ runner.os }}-build-
|
||||
${{ runner.os }}-
|
||||
- name: Install Dependencies
|
||||
run: npm ci
|
||||
- name: Run Lint
|
||||
run: npm run lint:js
|
||||
|
||||
phpcs:
|
||||
name: PHPCS
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Setup PHP 7.4
|
||||
uses: shivammathur/setup-php@9882bed06691b3a085010c1602ce43ef18f15c5b # v2
|
||||
with:
|
||||
php-version: '7.4'
|
||||
- name: Get composer cache directory
|
||||
id: composer-cache
|
||||
run: |
|
||||
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
||||
- name: Cache composer dependencies
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ${{ steps.composer-cache.outputs.dir }}
|
||||
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-composer-
|
||||
- name: Install composer packages
|
||||
run: |
|
||||
composer install --no-progress
|
||||
composer require php-parallel-lint/php-parallel-lint
|
||||
- name: Run Lint
|
||||
run: |
|
||||
vendor/bin/phpcs -p -s -n . --standard=./phpcs.xml --extensions=php
|
||||
- name: Run PHP Syntax Lint
|
||||
run: |
|
||||
export PATH=$HOME/.composer/vendor/bin:$PATH
|
||||
vendor/bin/parallel-lint --blame --exclude node_modules --exclude vendor .
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -2,6 +2,7 @@
|
|||
node_modules/
|
||||
.sass-cache/
|
||||
build/
|
||||
hello-elementor/
|
||||
log/
|
||||
vendor/
|
||||
composer.lock
|
||||
|
@ -14,3 +15,4 @@ Thumbs.db
|
|||
yarn.lock
|
||||
assets/js/
|
||||
*.css
|
||||
*.zip
|
||||
|
|
12
Gruntfile.js
12
Gruntfile.js
|
@ -12,8 +12,6 @@ module.exports = function( grunt ) {
|
|||
grunt.initConfig( {
|
||||
pkg: grunt.file.readJSON( 'package.json' ),
|
||||
|
||||
webpack: require( './webpack' ),
|
||||
|
||||
sass: {
|
||||
options: {
|
||||
implementation: sass,
|
||||
|
@ -23,7 +21,7 @@ module.exports = function( grunt ) {
|
|||
expand: true,
|
||||
cwd: 'assets/scss',
|
||||
src: '*.scss',
|
||||
dest: './',
|
||||
dest: './build',
|
||||
ext: '.css',
|
||||
} ],
|
||||
},
|
||||
|
@ -62,8 +60,8 @@ module.exports = function( grunt ) {
|
|||
files: [ {
|
||||
expand: true,
|
||||
src: [
|
||||
'*.css',
|
||||
'!*.min.css',
|
||||
'build/*.css',
|
||||
'!build/*.min.css',
|
||||
],
|
||||
ext: '.min.css',
|
||||
} ],
|
||||
|
@ -135,10 +133,6 @@ module.exports = function( grunt ) {
|
|||
'wp_readme_to_markdown',
|
||||
] );
|
||||
|
||||
grunt.registerTask( 'watch_scripts', ( isDevMode = false ) => {
|
||||
grunt.task.run( 'webpack:development' );
|
||||
} );
|
||||
|
||||
grunt.registerTask( 'styles', [
|
||||
'sass',
|
||||
'postcss',
|
||||
|
|
|
@ -178,7 +178,7 @@ export default class ControlsHook extends $e.modules.hookUI.After {
|
|||
*/
|
||||
toggleLayoutClass( element, classPrefix, inputOptions, inputValue ) {
|
||||
// Loop through the possible classes and remove the one that's not in use
|
||||
Object.entries( inputOptions ).forEach( ( [ key, value ] ) => {
|
||||
Object.entries( inputOptions ).forEach( ( [ key ] ) => {
|
||||
element.removeClass( classPrefix + key );
|
||||
} );
|
||||
|
||||
|
@ -210,7 +210,7 @@ export default class ControlsHook extends $e.modules.hookUI.After {
|
|||
/**
|
||||
* The hook logic.
|
||||
*/
|
||||
apply( args, result ) {
|
||||
apply( args ) {
|
||||
const allThemeControls = this.getHelloThemeControls(),
|
||||
// Extract the control ID from the passed args
|
||||
controlId = Object.keys( args.settings )[ 0 ],
|
||||
|
|
238
composer.lock
generated
Normal file
238
composer.lock
generated
Normal file
|
@ -0,0 +1,238 @@
|
|||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "a622e373d113e65b40d9fc8226a50733",
|
||||
"packages": [
|
||||
{
|
||||
"name": "dealerdirect/phpcodesniffer-composer-installer",
|
||||
"version": "v0.7.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
|
||||
"reference": "fe390591e0241955f22eb9ba327d137e501c771c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/fe390591e0241955f22eb9ba327d137e501c771c",
|
||||
"reference": "fe390591e0241955f22eb9ba327d137e501c771c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer-plugin-api": "^1.0 || ^2.0",
|
||||
"php": ">=5.3",
|
||||
"squizlabs/php_codesniffer": "^2.0 || ^3.0 || ^4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "*",
|
||||
"phpcompatibility/php-compatibility": "^9.0",
|
||||
"sensiolabs/security-checker": "^4.1.0"
|
||||
},
|
||||
"type": "composer-plugin",
|
||||
"extra": {
|
||||
"class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Franck Nijhof",
|
||||
"email": "franck.nijhof@dealerdirect.com",
|
||||
"homepage": "http://www.frenck.nl",
|
||||
"role": "Developer / IT Manager"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
|
||||
"homepage": "http://www.dealerdirect.com",
|
||||
"keywords": [
|
||||
"PHPCodeSniffer",
|
||||
"PHP_CodeSniffer",
|
||||
"code quality",
|
||||
"codesniffer",
|
||||
"composer",
|
||||
"installer",
|
||||
"phpcs",
|
||||
"plugin",
|
||||
"qa",
|
||||
"quality",
|
||||
"standard",
|
||||
"standards",
|
||||
"style guide",
|
||||
"stylecheck",
|
||||
"tests"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/dealerdirect/phpcodesniffer-composer-installer/issues",
|
||||
"source": "https://github.com/dealerdirect/phpcodesniffer-composer-installer"
|
||||
},
|
||||
"time": "2020-12-07T18:04:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "elementor/elementor-sniffs",
|
||||
"version": "v0.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/elementor/elementor-sniffs.git",
|
||||
"reference": "065f099cbe1a216e92ec23c573b3739b5f805dcb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/elementor/elementor-sniffs/zipball/065f099cbe1a216e92ec23c573b3739b5f805dcb",
|
||||
"reference": "065f099cbe1a216e92ec23c573b3739b5f805dcb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.7.0",
|
||||
"php": ">=5.6",
|
||||
"wp-coding-standards/wpcs": "^2.3"
|
||||
},
|
||||
"type": "phpcodesniffer-standard",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"GPL-3.0+"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Elementor Team",
|
||||
"email": "support@elementor.com"
|
||||
}
|
||||
],
|
||||
"description": "Elementor sniffs",
|
||||
"keywords": [
|
||||
"elementor",
|
||||
"phpcs",
|
||||
"standards",
|
||||
"wordpress"
|
||||
],
|
||||
"support": {
|
||||
"source": "https://github.com/elementor/elementor-sniffs/tree/v0.2.0"
|
||||
},
|
||||
"time": "2020-12-06T15:03:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "3.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
||||
"reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ffced0d2c8fa8e6cdc4d695a743271fab6c38625",
|
||||
"reference": "ffced0d2c8fa8e6cdc4d695a743271fab6c38625",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-simplexml": "*",
|
||||
"ext-tokenizer": "*",
|
||||
"ext-xmlwriter": "*",
|
||||
"php": ">=5.4.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||
},
|
||||
"bin": [
|
||||
"bin/phpcs",
|
||||
"bin/phpcbf"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.x-dev"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Greg Sherwood",
|
||||
"role": "lead"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
||||
"homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
|
||||
"keywords": [
|
||||
"phpcs",
|
||||
"standards"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues",
|
||||
"source": "https://github.com/squizlabs/PHP_CodeSniffer",
|
||||
"wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki"
|
||||
},
|
||||
"time": "2021-04-09T00:54:41+00:00"
|
||||
},
|
||||
{
|
||||
"name": "wp-coding-standards/wpcs",
|
||||
"version": "2.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/WordPress/WordPress-Coding-Standards.git",
|
||||
"reference": "7da1894633f168fe244afc6de00d141f27517b62"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/WordPress/WordPress-Coding-Standards/zipball/7da1894633f168fe244afc6de00d141f27517b62",
|
||||
"reference": "7da1894633f168fe244afc6de00d141f27517b62",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.4",
|
||||
"squizlabs/php_codesniffer": "^3.3.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || ^0.6",
|
||||
"phpcompatibility/php-compatibility": "^9.0",
|
||||
"phpcsstandards/phpcsdevtools": "^1.0",
|
||||
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"dealerdirect/phpcodesniffer-composer-installer": "^0.6 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
|
||||
},
|
||||
"type": "phpcodesniffer-standard",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Contributors",
|
||||
"homepage": "https://github.com/WordPress/WordPress-Coding-Standards/graphs/contributors"
|
||||
}
|
||||
],
|
||||
"description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
|
||||
"keywords": [
|
||||
"phpcs",
|
||||
"standards",
|
||||
"wordpress"
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/WordPress/WordPress-Coding-Standards/issues",
|
||||
"source": "https://github.com/WordPress/WordPress-Coding-Standards",
|
||||
"wiki": "https://github.com/WordPress/WordPress-Coding-Standards/wiki"
|
||||
},
|
||||
"time": "2020-05-13T23:57:56+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.0.0"
|
||||
}
|
|
@ -220,11 +220,11 @@ add_action( 'elementor/experiments/default-features-registered', function( Exper
|
|||
function hello_header_footer_experiment_active() {
|
||||
// If Elementor is not active, return false
|
||||
if ( ! did_action( 'elementor/loaded' ) ) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
// Backwards compat.
|
||||
if ( ! method_exists( Plugin::$instance->experiments, 'is_feature_active' ) ) {
|
||||
return FALSE;
|
||||
return false;
|
||||
}
|
||||
|
||||
return (bool) ( Plugin::$instance->experiments->is_feature_active( 'hello-theme-header-footer' ) );
|
||||
|
|
|
@ -196,7 +196,7 @@ class Settings_Footer extends Tab_Base {
|
|||
'tab' => 'hello-settings-footer',
|
||||
'label' => __( 'Site Logo', 'hello-elementor' ),
|
||||
'condition' => [
|
||||
'hello_footer_logo_display!' => ''
|
||||
'hello_footer_logo_display!' => '',
|
||||
],
|
||||
]
|
||||
);
|
||||
|
|
|
@ -196,7 +196,7 @@ class Settings_Header extends Tab_Base {
|
|||
'name' => 'hello_header_logo_display',
|
||||
'operator' => '=',
|
||||
'value' => 'yes',
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
]
|
||||
|
@ -225,7 +225,7 @@ class Settings_Header extends Tab_Base {
|
|||
'size_units' => [
|
||||
'%',
|
||||
'px',
|
||||
'vh'
|
||||
'vh',
|
||||
],
|
||||
'range' => [
|
||||
'px' => [
|
||||
|
@ -303,7 +303,7 @@ class Settings_Header extends Tab_Base {
|
|||
'name' => 'hello_header_tagline_display',
|
||||
'operator' => '=',
|
||||
'value' => 'yes',
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
]
|
||||
|
@ -358,7 +358,7 @@ class Settings_Header extends Tab_Base {
|
|||
'name' => 'hello_header_menu_display',
|
||||
'operator' => '=',
|
||||
'value' => 'yes',
|
||||
]
|
||||
],
|
||||
],
|
||||
],
|
||||
]
|
||||
|
|
11434
package-lock.json
generated
Normal file
11434
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load diff
17
package.json
17
package.json
|
@ -4,6 +4,13 @@
|
|||
"homepage": "https://elementor.com/",
|
||||
"description": "A sample theme for Elementor.",
|
||||
"version": "2.2.1",
|
||||
"scripts": {
|
||||
"build": "grunt default && webpack --env=development && webpack --env=production",
|
||||
"build:watch": "grunt default watch & webpack --env=developmentWithWatch & webpack --env=productionWithWatch",
|
||||
"clean:build": "rimraf build && rimraf hello-elementor",
|
||||
"zip": "npm run clean:build && npm run build && mv build hello-elementor && zip -r hello-elementor.$npm_package_version.zip hello-elementor/*",
|
||||
"lint:js": "eslint ."
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.0.0",
|
||||
"@babel/plugin-proposal-class-properties": "^7.2.1",
|
||||
|
@ -12,6 +19,7 @@
|
|||
"autoprefixer": "~8.5.2",
|
||||
"babel-eslint": "^8.2.6",
|
||||
"babel-loader": "8.0.0",
|
||||
"copy-webpack-plugin": "^9.0.0",
|
||||
"cssnano": "~3.10.0",
|
||||
"eslint": "^5.16.0",
|
||||
"eslint-config-wordpress": "^2.0.0",
|
||||
|
@ -21,19 +29,22 @@
|
|||
"eslint-plugin-no-jquery": "^2.5.0",
|
||||
"eslint-plugin-react": "^7.11.1",
|
||||
"eslint-plugin-wordpress": "git://github.com/WordPress-Coding-Standards/eslint-plugin-wordpress.git#1774343f6226052a46b081e01db3fca8793cc9f1",
|
||||
"grunt": "^1.0.4",
|
||||
"grunt": "^1.4.1",
|
||||
"grunt-checktextdomain": "^1.0.1",
|
||||
"grunt-contrib-sass": "~1.0.0",
|
||||
"grunt-contrib-watch": "~1.1.0",
|
||||
"grunt-postcss": "~0.9.0",
|
||||
"grunt-sass": "~2.1.0",
|
||||
"grunt-text-replace": "~0.4.0",
|
||||
"grunt-webpack": "^4.0.2",
|
||||
"grunt-webpack": "^4.0.3",
|
||||
"grunt-wp-readme-to-markdown-with-extra": "~2.2.0",
|
||||
"load-grunt-tasks": "^4.0.0",
|
||||
"matchdep": "~2.0.0",
|
||||
"node-sass": "^5.0.0",
|
||||
"webpack": "^5.11.0"
|
||||
"npm-build-zip": "^1.0.3",
|
||||
"rimraf": "^3.0.2",
|
||||
"webpack": "^5.11.0",
|
||||
"webpack-cli": "^4.7.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"@babel/plugin-transform-modules-commonjs": "^7.2.0",
|
||||
|
|
|
@ -10,7 +10,8 @@ if ( ! defined( 'ABSPATH' ) ) {
|
|||
}
|
||||
?>
|
||||
<?php
|
||||
while ( have_posts() ) : the_post();
|
||||
while ( have_posts() ) :
|
||||
the_post();
|
||||
?>
|
||||
|
||||
<main <?php post_class( 'site-main' ); ?> role="main">
|
||||
|
|
139
webpack.config.js
Normal file
139
webpack.config.js
Normal file
|
@ -0,0 +1,139 @@
|
|||
/**
|
||||
* Grunt webpack task config
|
||||
* @package Elementor
|
||||
*/
|
||||
const path = require( 'path' );
|
||||
|
||||
const CopyPlugin = require( 'copy-webpack-plugin' );
|
||||
const TerserPlugin = require( 'terser-webpack-plugin' );
|
||||
|
||||
const moduleRules = {
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
exclude: /node_modules/,
|
||||
use: [
|
||||
{
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: [ '@babel/preset-env' ],
|
||||
plugins: [
|
||||
[ '@babel/plugin-proposal-class-properties' ],
|
||||
[ '@babel/plugin-transform-runtime' ],
|
||||
[ '@babel/plugin-transform-modules-commonjs' ],
|
||||
[ '@babel/plugin-proposal-optional-chaining' ],
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const entry = {
|
||||
'hello-editor': path.resolve( __dirname, './assets/dev/js/editor/hello-editor.js' ),
|
||||
'hello-frontend': path.resolve( __dirname, './assets/dev/js/frontend/hello-frontend.js' ),
|
||||
};
|
||||
|
||||
const webpackConfig = {
|
||||
target: 'web',
|
||||
context: __dirname,
|
||||
module: moduleRules,
|
||||
entry: entry,
|
||||
mode: 'development',
|
||||
plugins: [
|
||||
new CopyPlugin( {
|
||||
patterns: [
|
||||
{
|
||||
from: '**/*',
|
||||
context: __dirname,
|
||||
to: path.resolve( __dirname, 'build' ),
|
||||
// Terser skip this file for minimization
|
||||
info: { minimized: true },
|
||||
globOptions: {
|
||||
ignore: [
|
||||
'**.zip',
|
||||
'**.css',
|
||||
'**/karma.conf.js',
|
||||
'**/assets/dev/**',
|
||||
'**/assets/scss/**',
|
||||
'**/assets/js/qunit-tests*',
|
||||
'**/bin/**',
|
||||
'**/build/**',
|
||||
'**/composer.json',
|
||||
'**/composer.lock',
|
||||
'**/Gruntfile.js',
|
||||
'**/node_modules/**',
|
||||
'**/npm-debug.log',
|
||||
'**/package-lock.json',
|
||||
'**/package.json',
|
||||
'**/phpcs.xml',
|
||||
'**/README.md',
|
||||
'**/readme.txt',
|
||||
'**/webpack.config.js',
|
||||
'**/vendor/**',
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
} ),
|
||||
],
|
||||
output: {
|
||||
path: path.resolve( __dirname, './build/assets/js' ),
|
||||
filename: '[name].js',
|
||||
devtoolModuleFilenameTemplate: './[resource]',
|
||||
},
|
||||
};
|
||||
|
||||
const webpackProductionConfig = {
|
||||
target: 'web',
|
||||
context: __dirname,
|
||||
module: moduleRules,
|
||||
entry: {
|
||||
...entry,
|
||||
},
|
||||
optimization: {
|
||||
minimize: true,
|
||||
minimizer: [
|
||||
new TerserPlugin( {
|
||||
terserOptions: {
|
||||
keep_fnames: true,
|
||||
},
|
||||
include: /\.min\.js$/,
|
||||
} ),
|
||||
],
|
||||
},
|
||||
mode: 'production',
|
||||
output: {
|
||||
path: path.resolve( __dirname, './build/assets/js' ),
|
||||
filename: '[name].js',
|
||||
},
|
||||
performance: { hints: false },
|
||||
};
|
||||
|
||||
// Add minified entry points
|
||||
Object.entries( webpackProductionConfig.entry ).forEach( ( [ wpEntry, value ] ) => {
|
||||
webpackProductionConfig.entry[ wpEntry + '.min' ] = value;
|
||||
|
||||
delete webpackProductionConfig.entry[ wpEntry ];
|
||||
} );
|
||||
|
||||
module.exports = ( env ) => {
|
||||
if ( env.developmentWithWatch ) {
|
||||
return { ...webpackConfig, watch: true, devtool: 'source-map' };
|
||||
}
|
||||
|
||||
if ( env.productionWithWatch ) {
|
||||
return { ...webpackProductionConfig, watch: true, devtool: 'source-map' };
|
||||
}
|
||||
|
||||
if ( env.production ) {
|
||||
return webpackProductionConfig;
|
||||
}
|
||||
|
||||
if ( env.development ) {
|
||||
return webpackConfig;
|
||||
}
|
||||
|
||||
throw new Error( 'missing or invalid --env= development/production/developmentWithWatch/productionWithWatch' );
|
||||
};
|
92
webpack.js
92
webpack.js
|
@ -1,92 +0,0 @@
|
|||
/**
|
||||
* Grunt webpack task config
|
||||
* @package Elementor
|
||||
*/
|
||||
const path = require( 'path' );
|
||||
|
||||
const TerserPlugin = require( 'terser-webpack-plugin' );
|
||||
|
||||
const moduleRules = {
|
||||
rules: [
|
||||
{
|
||||
test: /\.js$/,
|
||||
exclude: /node_modules/,
|
||||
use: [
|
||||
{
|
||||
loader: 'babel-loader',
|
||||
options: {
|
||||
presets: [ '@babel/preset-env' ],
|
||||
plugins: [
|
||||
[ '@babel/plugin-proposal-class-properties' ],
|
||||
[ '@babel/plugin-transform-runtime' ],
|
||||
[ '@babel/plugin-transform-modules-commonjs' ],
|
||||
[ '@babel/plugin-proposal-optional-chaining' ],
|
||||
],
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
};
|
||||
|
||||
const entry = {
|
||||
'hello-editor': path.resolve( __dirname, './assets/dev/js/editor/hello-editor.js' ),
|
||||
'hello-frontend': path.resolve( __dirname, './assets/dev/js/frontend/hello-frontend.js' ),
|
||||
};
|
||||
|
||||
const webpackConfig = {
|
||||
target: 'web',
|
||||
context: __dirname,
|
||||
devtool: 'source-map',
|
||||
module: moduleRules,
|
||||
entry: entry,
|
||||
mode: 'development',
|
||||
output: {
|
||||
path: path.resolve( __dirname, './assets/js' ),
|
||||
filename: '[name].js',
|
||||
devtoolModuleFilenameTemplate: './[resource]',
|
||||
},
|
||||
watch: true,
|
||||
};
|
||||
|
||||
const webpackProductionConfig = {
|
||||
target: 'web',
|
||||
context: __dirname,
|
||||
devtool: 'source-map',
|
||||
module: moduleRules,
|
||||
entry: {
|
||||
...entry,
|
||||
},
|
||||
optimization: {
|
||||
minimize: true,
|
||||
minimizer: [
|
||||
new TerserPlugin( {
|
||||
terserOptions: {
|
||||
keep_fnames: true,
|
||||
},
|
||||
include: /\.min\.js$/
|
||||
} ),
|
||||
],
|
||||
},
|
||||
mode: 'production',
|
||||
output: {
|
||||
path: path.resolve( __dirname, './assets/js' ),
|
||||
filename: '[name].js',
|
||||
},
|
||||
performance: { hints: false },
|
||||
};
|
||||
|
||||
// Add minified entry points
|
||||
Object.entries( webpackProductionConfig.entry ).forEach( ( [ entry, value ] ) => {
|
||||
webpackProductionConfig.entry[ entry + '.min' ] = value;
|
||||
|
||||
delete webpackProductionConfig.entry[ entry ];
|
||||
} );
|
||||
|
||||
|
||||
const gruntWebpackConfig = {
|
||||
development: webpackConfig,
|
||||
production: webpackProductionConfig
|
||||
};
|
||||
|
||||
module.exports = gruntWebpackConfig;
|
Loading…
Add table
Add a link
Reference in a new issue