Webpack: convert rules to TypeScript
This commit is contained in:
parent
671210acad
commit
b770cbb175
|
@ -1,11 +1,13 @@
|
||||||
// Asset modules
|
// Asset modules
|
||||||
// https://webpack.js.org/guides/asset-modules/
|
// https://webpack.js.org/guides/asset-modules/
|
||||||
|
|
||||||
const { resolve } = require('path');
|
import { resolve } from 'path';
|
||||||
|
|
||||||
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
// These are processed in reverse-order
|
// These are processed in reverse-order
|
||||||
// We use the name 'packs' instead of 'assets' for legacy reasons
|
// We use the name 'packs' instead of 'assets' for legacy reasons
|
||||||
module.exports = [{
|
const rules: RuleSetRule[] = [{
|
||||||
test: /\.(png|svg)/,
|
test: /\.(png|svg)/,
|
||||||
type: 'asset/resource',
|
type: 'asset/resource',
|
||||||
include: [
|
include: [
|
||||||
|
@ -81,3 +83,5 @@ module.exports = [{
|
||||||
filename: 'packs/images/crypto/[name]-[contenthash:8][ext]',
|
filename: 'packs/images/crypto/[name]-[contenthash:8][ext]',
|
||||||
},
|
},
|
||||||
}];
|
}];
|
||||||
|
|
||||||
|
export default rules;
|
|
@ -1,11 +1,13 @@
|
||||||
const { resolve } = require('path');
|
import { resolve } from 'path';
|
||||||
|
|
||||||
const { env } = require('../configuration');
|
import { env } from '../configuration';
|
||||||
|
|
||||||
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
// This is a hack, used to force build_config @preval to recompile
|
// This is a hack, used to force build_config @preval to recompile
|
||||||
// https://github.com/kentcdodds/babel-plugin-preval/issues/19
|
// https://github.com/kentcdodds/babel-plugin-preval/issues/19
|
||||||
|
|
||||||
module.exports = {
|
const rule: RuleSetRule = {
|
||||||
test: resolve(__dirname, '../../app/soapbox/build_config.js'),
|
test: resolve(__dirname, '../../app/soapbox/build_config.js'),
|
||||||
use: [
|
use: [
|
||||||
{
|
{
|
||||||
|
@ -18,3 +20,5 @@ module.exports = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export default rule;
|
|
@ -1,11 +1,13 @@
|
||||||
const { resolve } = require('path');
|
import { resolve } from 'path';
|
||||||
|
|
||||||
const { env } = require('../configuration');
|
import { env } from '../configuration';
|
||||||
|
|
||||||
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
// This is a hack, used in conjunction with rules/git-refresh.js
|
// This is a hack, used in conjunction with rules/git-refresh.js
|
||||||
// https://github.com/kentcdodds/babel-plugin-preval/issues/19
|
// https://github.com/kentcdodds/babel-plugin-preval/issues/19
|
||||||
|
|
||||||
module.exports = {
|
const rule: RuleSetRule = {
|
||||||
test: resolve(__dirname, '../../app/soapbox/utils/code.js'),
|
test: resolve(__dirname, '../../app/soapbox/utils/code.js'),
|
||||||
use: [
|
use: [
|
||||||
{
|
{
|
||||||
|
@ -18,3 +20,5 @@ module.exports = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export default rule;
|
|
@ -1,8 +1,10 @@
|
||||||
const { join, resolve } = require('path');
|
import { join, resolve } from 'path';
|
||||||
|
|
||||||
const { env, settings } = require('../configuration');
|
import { env, settings } from '../configuration';
|
||||||
|
|
||||||
module.exports = {
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
|
const rule: RuleSetRule = {
|
||||||
test: /\.(js|jsx|mjs|ts|tsx)$/,
|
test: /\.(js|jsx|mjs|ts|tsx)$/,
|
||||||
include: [
|
include: [
|
||||||
settings.source_path,
|
settings.source_path,
|
||||||
|
@ -27,3 +29,5 @@ module.exports = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export default rule;
|
|
@ -1,6 +1,8 @@
|
||||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
|
import MiniCssExtractPlugin from 'mini-css-extract-plugin';
|
||||||
|
|
||||||
module.exports = {
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
|
const rule: RuleSetRule = {
|
||||||
test: /\.s?css$/i,
|
test: /\.s?css$/i,
|
||||||
use: [
|
use: [
|
||||||
MiniCssExtractPlugin.loader,
|
MiniCssExtractPlugin.loader,
|
||||||
|
@ -26,3 +28,5 @@ module.exports = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export default rule;
|
|
@ -1,9 +0,0 @@
|
||||||
const { resolve } = require('path');
|
|
||||||
|
|
||||||
// Recompile code.js whenever git changes
|
|
||||||
module.exports = {
|
|
||||||
test: resolve(__dirname, '../../app/soapbox/utils/code.js'),
|
|
||||||
use: {
|
|
||||||
loader: resolve(__dirname, '../loaders/git-loader.js'),
|
|
||||||
},
|
|
||||||
};
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
import { resolve } from 'path';
|
||||||
|
|
||||||
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
|
/** Recompile code.js whenever git changes. */
|
||||||
|
const rule: RuleSetRule = {
|
||||||
|
test: resolve(__dirname, '../../app/soapbox/utils/code.js'),
|
||||||
|
use: {
|
||||||
|
loader: resolve(__dirname, '../loaders/git-loader.js'),
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
export default rule;
|
|
@ -1,19 +0,0 @@
|
||||||
const assets = require('./assets');
|
|
||||||
const babel = require('./babel');
|
|
||||||
const buildConfig = require('./babel-build-config');
|
|
||||||
const git = require('./babel-git');
|
|
||||||
const css = require('./css');
|
|
||||||
const gitRefresh = require('./git-refresh');
|
|
||||||
const nodeModules = require('./node_modules');
|
|
||||||
|
|
||||||
// Webpack loaders are processed in reverse order
|
|
||||||
// https://webpack.js.org/concepts/loaders/#loader-features
|
|
||||||
module.exports = [
|
|
||||||
...assets,
|
|
||||||
css,
|
|
||||||
nodeModules,
|
|
||||||
babel,
|
|
||||||
git,
|
|
||||||
gitRefresh,
|
|
||||||
buildConfig,
|
|
||||||
];
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
import assets from './assets';
|
||||||
|
import babel from './babel';
|
||||||
|
import buildConfig from './babel-build-config';
|
||||||
|
import git from './babel-git';
|
||||||
|
import css from './css';
|
||||||
|
import gitRefresh from './git-refresh';
|
||||||
|
import nodeModules from './node_modules';
|
||||||
|
|
||||||
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
|
// Webpack loaders are processed in reverse order
|
||||||
|
// https://webpack.js.org/concepts/loaders/#loader-features
|
||||||
|
const rules: RuleSetRule[] = [
|
||||||
|
...assets,
|
||||||
|
css,
|
||||||
|
nodeModules,
|
||||||
|
babel,
|
||||||
|
git,
|
||||||
|
gitRefresh,
|
||||||
|
buildConfig,
|
||||||
|
];
|
||||||
|
|
||||||
|
export default rules;
|
|
@ -1,8 +0,0 @@
|
||||||
if (process.env.NODE_ENV === 'production') {
|
|
||||||
module.exports = {};
|
|
||||||
} else {
|
|
||||||
module.exports = {
|
|
||||||
test: /\.js$/,
|
|
||||||
loader: 'mark-loader',
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -0,0 +1,14 @@
|
||||||
|
import { env } from 'process';
|
||||||
|
|
||||||
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
|
let rule: RuleSetRule = {};
|
||||||
|
|
||||||
|
if (env.NODE_ENV !== 'production') {
|
||||||
|
rule = {
|
||||||
|
test: /\.js$/,
|
||||||
|
loader: 'mark-loader',
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
export default rule;
|
|
@ -1,8 +1,10 @@
|
||||||
const { join } = require('path');
|
import { join } from 'path';
|
||||||
|
|
||||||
const { settings, env } = require('../configuration');
|
import { env, settings } from '../configuration';
|
||||||
|
|
||||||
module.exports = {
|
import type { RuleSetRule } from 'webpack';
|
||||||
|
|
||||||
|
const rule: RuleSetRule = {
|
||||||
test: /\.(js|mjs)$/,
|
test: /\.(js|mjs)$/,
|
||||||
include: /node_modules/,
|
include: /node_modules/,
|
||||||
exclude: [
|
exclude: [
|
||||||
|
@ -26,3 +28,5 @@ module.exports = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
export default rule;
|
Loading…
Reference in New Issue