Skip to content

E2E Webpack

E2E Webpack #14581

on:
schedule:
- cron: '0 */4 * * *'
push:
branches:
- master
pull_request:
paths:
- .github/actions/prepare/action.yml
- .github/workflows/e2e-webpack-workflow.yml
- scripts/e2e-setup-ci.sh
name: 'E2E Webpack'
jobs:
chore:
name: 'Validating Webpack'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/prepare
- name: 'Vanilla Webpack'
run: |
source scripts/e2e-setup-ci.sh
yarn init -p
yarn add -D webpack webpack-cli lodash
echo "const path = require('path'); module.exports = { entry: './src/index.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'dist')} };" | tee webpack.config.js
mkdir src
echo "import _ from 'lodash';function printHello() { console.log(_.join(['Hello', 'webpack'], ' '))}; printHello();" | tee src/index.js
yarn webpack info
yarn webpack
[[ "$(node dist/main.js)" = "Hello webpack" ]]
- name: 'raw-loader'
run: |
source scripts/e2e-setup-ci.sh
yarn init -p
yarn add webpack webpack-cli raw-loader
mkdir src
echo 'import text from "raw-loader!./text.txt"; console.log(text);' | tee src/index.js
echo 'Hello raw-loader' | tee src/text.txt
yarn webpack info
yarn webpack
[[ "$(node dist/main.js)" = "Hello raw-loader" ]]
if: |
success() || failure()
- name: 'ts-loader'
run: |
source scripts/e2e-setup-ci.sh
yarn init -p
yarn add -D webpack webpack-cli ts-loader typescript @types/lodash lodash
echo "module.exports = {mode: 'none', entry: './src/index.ts',output: { filename: 'main.js'}, resolve: { extensions: ['.ts', '.tsx', '.js']},module: { rules: [ { test: /\.tsx?$/, loader: require.resolve('ts-loader') } ]}};" | tee webpack.config.js
echo "{\"compilerOptions\": { \"noImplicitAny\": true, \"removeComments\": true, \"preserveConstEnums\": true, \"sourceMap\": true}}" | tee tsconfig.json
mkdir src
echo "import * as _ from 'lodash';function printHello() { console.log(_.join(['Hello', 'ts-loader'], ' '))}; printHello();" | tee src/index.ts
yarn webpack info
yarn webpack
[[ "$(node dist/main.js)" = "Hello ts-loader" ]]
if: |
success() || failure()
- name: 'less-loader'
run: |
source scripts/e2e-setup-ci.sh
yarn init -p
yarn add -D webpack webpack-cli less less-loader css-loader style-loader file-loader bootstrap-less
echo "const path = require('path'); module.exports = { mode: 'none', entry: './src/index.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.less$/, use: ['style-loader', 'css-loader', 'less-loader'] }, { test: /\.(png|svg|jpg|gif)$/, use: ['file-loader'] }, { test: /\.(woff|woff2|eot|ttf|otf)$/, use: ['file-loader'] } ] } }; " | tee webpack.config.js
mkdir src
echo "import './main.less';" | tee src/index.js
echo "@import '~bootstrap-less/bootstrap/index.less';@import './other.less';.box:extend(.hotpink) {width: 200px;height: 200px;}" | tee src/main.less
echo ".hotpink {background: hotpink;}" | tee src/other.less
yarn webpack info
yarn webpack
ls dist | grep "main.js"
ls dist | grep ".svg"
ls dist | grep ".woff2"
if: |
success() || failure()
- name: 'less-loader + thread-loader'
run: |
# Thread-loader didn't get updated to support getOptions, causing it to break w/ less-loader
# Ref https://github.com/webpack-contrib/thread-loader/issues/106
exit 0
source scripts/e2e-setup-ci.sh
yarn init -p
yarn add -D webpack webpack-cli less less-loader css-loader style-loader file-loader bootstrap-less thread-loader
echo "const path = require('path'); module.exports = { mode: 'none', entry: './src/index.js', output: { filename: 'main.js', path: path.resolve(__dirname, 'dist') }, module: { rules: [ { test: /\.less$/, use: ['style-loader', 'thread-loader', 'css-loader', 'less-loader'] }, { test: /\.(png|svg|jpg|gif)$/, use: ['file-loader'] }, { test: /\.(woff|woff2|eot|ttf|otf)$/, use: ['file-loader'] } ] } }; " | tee webpack.config.js
mkdir src
echo "import './main.less';" | tee src/index.js
echo "@import '~bootstrap-less/bootstrap/index.less';@import './other.less';.box:extend(.hotpink) {width: 200px;height: 200px;}" | tee src/main.less
echo ".hotpink {background: hotpink;}" | tee src/other.less
yarn webpack info
yarn webpack
ls dist | grep "main.js"
ls dist | grep ".svg"
ls dist | grep ".woff2"
if: |
success() || failure()
pFad - Phonifier reborn

Pfad - The Proxy pFad of Β© 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy