Skip to content

Commit

Permalink
feat(build): 支持各个loader的ESM化 (#39)
Browse files Browse the repository at this point in the history
  • Loading branch information
otakustay committed Feb 1, 2022
1 parent 341190f commit d7451e5
Show file tree
Hide file tree
Showing 42 changed files with 959 additions and 934 deletions.
2 changes: 1 addition & 1 deletion packages/babel-plugin-add-react-display-name/package.json
Expand Up @@ -27,7 +27,7 @@
"@babel/preset-react": "^7.16.5",
"@reskript/core": "4.0.0-beta.0",
"@types/babel__core": "^7.1.17",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"c8": "^7.10.0",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta",
Expand Down
Expand Up @@ -31,7 +31,7 @@
"@reskript/core": "4.0.0-beta.0",
"@types/babel__core": "^7.1.17",
"@types/babel__traverse": "^7.14.2",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/react": "^17.0.38",
"c8": "^7.10.0",
"eslint": "^8.8.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/babel-utils/package.json
Expand Up @@ -30,7 +30,7 @@
"@types/babel__core": "^7.1.17",
"@types/babel__traverse": "^7.14.2",
"@types/glob": "^7.2.0",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"c8": "^7.10.0",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta",
Expand Down
2 changes: 1 addition & 1 deletion packages/cli-babel/package.json
Expand Up @@ -25,7 +25,7 @@
},
"devDependencies": {
"@types/babel__core": "^7.1.17",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta"
},
Expand Down
4 changes: 2 additions & 2 deletions packages/cli-build/package.json
Expand Up @@ -24,11 +24,11 @@
"test": "echo 'No test in @reskript/cli-build'"
},
"devDependencies": {
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/ramda": "^0.27.64",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta",
"webpack": "^5.67.0"
"webpack": "^5.68.0"
},
"dependencies": {
"@reskript/config-webpack": "4.0.0-beta.0",
Expand Down
4 changes: 2 additions & 2 deletions packages/cli-dev/package.json
Expand Up @@ -25,10 +25,10 @@
},
"devDependencies": {
"@types/express": "^4.17.13",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta",
"webpack": "^5.67.0"
"webpack": "^5.68.0"
},
"dependencies": {
"@reskript/config-webpack": "4.0.0-beta.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/cli-lint/package.json
Expand Up @@ -25,7 +25,7 @@
},
"devDependencies": {
"@types/eslint": "^8.4.1",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/ramda": "^0.27.64",
"eslint": "^8.8.0",
"stylelint": "^14.3.0",
Expand Down
7 changes: 4 additions & 3 deletions packages/cli-play/package.json
Expand Up @@ -27,21 +27,22 @@
"@types/body-parser": "^1.19.2",
"@types/debounce": "^1.2.1",
"@types/dedent": "^0.7.0",
"@types/marked": "^4.0.1",
"@types/marked": "^4.0.2",
"@types/mdast": "^3.0.10",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/ramda": "^0.27.64",
"@types/react": "^17.0.38",
"c8": "^7.10.0",
"cpy-cli": "^3.1.1",
"dedent": "^0.7.0",
"eslint": "^8.8.0",
"loader-of-loader": "^1.0.1",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"typescript": "^4.6.0-beta",
"vite": "^2.7.12",
"vitest": "^0.2.5",
"webpack": "^5.67.0"
"webpack": "^5.68.0"
},
"dependencies": {
"@monaco-editor/react": "^4.3.1",
Expand Down
26 changes: 17 additions & 9 deletions packages/cli-play/src/webpack.ts
@@ -1,7 +1,7 @@
import path from 'node:path';
import webpack from 'webpack';
import {reject, isNil} from 'ramda';
import {dirFromImportMeta} from '@reskript/core';
import {dirFromImportMeta, resolve} from '@reskript/core';
import {createWebpackConfig as createBaseWebpackConfig, BuildContext} from '@reskript/config-webpack';
import * as loaders from '@reskript/config-webpack/loaders';
import {createWebpackDevServerPartial} from '@reskript/config-webpack-dev-server';
Expand All @@ -23,15 +23,23 @@ export const createWebpackConfig = async (target: string, cmd: PlayCommandLineAr
const entryLoaders = [
await loaders.babel(buildContext),
{
loader: path.join(currentDirectory, 'loader'),
loader: await resolve('loader-of-loader'),
options: {
...buildContext.projectSettings.play,
componentTypeName,
cwd: buildContext.cwd,
componentModulePath: path.resolve(buildContext.cwd, target),
globalSetupModulePath: cmd.setup
? path.resolve(cmd.cwd, cmd.setup)
: buildContext.projectSettings.play.defaultGlobalSetup,
resolveLoader: async () => {
return {
loader: path.join(currentDirectory, 'loader.js'),
type: 'module',
options: {
...buildContext.projectSettings.play,
componentTypeName,
cwd: buildContext.cwd,
componentModulePath: path.resolve(buildContext.cwd, target),
globalSetupModulePath: cmd.setup
? path.resolve(cmd.cwd, cmd.setup)
: buildContext.projectSettings.play.defaultGlobalSetup,
},
};
},
},
},
];
Expand Down
2 changes: 1 addition & 1 deletion packages/cli-test/package.json
Expand Up @@ -24,7 +24,7 @@
"test": "echo 'No test in @reskript/cli-test'"
},
"devDependencies": {
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/ramda": "^0.27.64",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta"
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Expand Up @@ -34,7 +34,7 @@
"@reskript/cli-lint": "4.0.0-beta.0",
"@reskript/cli-play": "4.0.0-beta.0",
"@reskript/cli-test": "4.0.0-beta.0",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta"
},
Expand Down
2 changes: 1 addition & 1 deletion packages/config-babel/package.json
Expand Up @@ -29,7 +29,7 @@
"@reskript/core": "4.0.0-beta.0",
"@rollup/plugin-babel": "^5.3.0",
"@types/babel__core": "^7.1.17",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"c8": "^7.10.0",
"eslint": "^8.8.0",
"rollup": "^2.66.1",
Expand Down
4 changes: 2 additions & 2 deletions packages/config-img-loader/package.json
Expand Up @@ -27,10 +27,10 @@
"@types/imagemin-gifsicle": "^7.0.1",
"@types/imagemin-mozjpeg": "^8.0.1",
"@types/imagemin-optipng": "^5.2.1",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta",
"webpack": "^5.67.0"
"webpack": "^5.68.0"
},
"dependencies": {
"@reskript/core": "4.0.0-beta.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/config-jest/package.json
Expand Up @@ -30,7 +30,7 @@
"@types/enzyme": "^3.10.10",
"@types/enzyme-adapter-react-16": "^1.0.6",
"@types/jest": "^27.0.3",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/resolve": "^1.20.1",
"eslint": "^8.8.0",
"prettier": "^2.5.1",
Expand Down
8 changes: 4 additions & 4 deletions packages/config-lint/package.json
Expand Up @@ -29,7 +29,7 @@
"devDependencies": {
"@babel/plugin-transform-typescript": "^7.16.7",
"@rollup/plugin-babel": "^5.3.0",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/postcss-less": "^4.0.1",
"@types/resolve": "^1.20.1",
"eslint": "^8.8.0",
Expand All @@ -47,14 +47,14 @@
"@reskript/core": "4.0.0-beta.0",
"@reskript/eslint-plugin": "4.0.0-beta.0",
"@rushstack/eslint-patch": "^1.1.0",
"@typescript-eslint/eslint-plugin": "^5.10.1",
"@typescript-eslint/parser": "^5.10.1",
"@typescript-eslint/eslint-plugin": "^5.10.2",
"@typescript-eslint/parser": "^5.10.2",
"eslint-plugin-babel": "^5.3.1",
"eslint-plugin-jest": "^26.0.0",
"eslint-plugin-react": "^7.28.0",
"eslint-plugin-react-hooks": "^4.3.0",
"eslint-plugin-reskript": "^0.1.2",
"postcss": "^8.4.5",
"postcss": "^8.4.6",
"postcss-less": "^6.0.0",
"resolve": "^1.22.0"
},
Expand Down
4 changes: 2 additions & 2 deletions packages/config-webpack-dev-server/package.json
Expand Up @@ -25,13 +25,13 @@
},
"devDependencies": {
"@types/cli-progress": "^3.9.2",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"c8": "^7.10.0",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta",
"vite": "^2.7.12",
"vitest": "^0.2.5",
"webpack": "^5.67.0",
"webpack": "^5.68.0",
"webpack-dev-server": "^4.7.1"
},
"dependencies": {
Expand Down
9 changes: 5 additions & 4 deletions packages/config-webpack/package.json
Expand Up @@ -29,17 +29,18 @@
"@reskript/config-img-loader": "4.0.0-beta.0",
"@types/cssnano": "^5.0.0",
"@types/less": "^3.0.3",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/postcss-preset-env": "^6.7.3",
"@types/tailwindcss": "^3.0.4",
"@types/workbox-webpack-plugin": "^5.1.8",
"c8": "^7.10.0",
"eslint": "^8.8.0",
"loader-of-loader": "^1.0.1",
"semver": "^7.3.5",
"typescript": "^4.6.0-beta",
"vite": "^2.7.12",
"vitest": "^0.2.5",
"webpack": "^5.67.0"
"webpack": "^5.68.0"
},
"dependencies": {
"@babel/core": "^7.16.12",
Expand Down Expand Up @@ -69,9 +70,9 @@
"less-plugin-functions": "^1.0.0",
"less-plugin-npm-import": "^2.1.0",
"mini-css-extract-plugin": "^2.5.3",
"postcss": "^8.4.5",
"postcss": "^8.4.6",
"postcss-loader": "^6.2.1",
"postcss-preset-env": "^7.1.0",
"postcss-preset-env": "^7.3.0",
"ramda": "^0.28.0",
"regenerator-runtime": "^0.13.9",
"resolve-typescript-plugin": "^1.1.3",
Expand Down
10 changes: 9 additions & 1 deletion packages/config-webpack/src/loaders/lessSafe.ts
Expand Up @@ -3,7 +3,15 @@ import {LoaderFactory} from '../interface.js';

const factory: LoaderFactory = async () => {
return {
loader: await resolve('@reskript/less-safe-loader'),
loader: await resolve('loader-of-loader'),
options: {
resolveLoader: async () => {
return {
loader: await resolve('@reskript/less-safe-loader'),
type: 'module',
};
},
},
};
};

Expand Down
12 changes: 10 additions & 2 deletions packages/config-webpack/src/loaders/svgToComponent.ts
Expand Up @@ -5,9 +5,17 @@ const factory: LoaderFactory = async entry => {
const {mode, projectSettings: {build: {script: {displayName}}}} = entry;

return {
loader: await resolve('@reskript/svg-to-component-loader'),
loader: await resolve('loader-of-loader'),
options: {
displayName: displayName === 'auto' ? mode === 'development' : displayName,
resolveLoader: async () => {
return {
loader: await resolve('@reskript/svg-to-component-loader'),
type: 'module',
options: {
displayName: displayName === 'auto' ? mode === 'development' : displayName,
},
};
},
},
};
};
Expand Down
6 changes: 3 additions & 3 deletions packages/core/package.json
Expand Up @@ -30,7 +30,7 @@
"@rollup/plugin-babel": "^5.3.0",
"@types/caller": "^1.0.0",
"@types/dedent": "^0.7.0",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/ramda": "^0.27.64",
"@types/resolve": "^1.20.1",
"@types/unixify": "^1.0.0",
Expand All @@ -45,9 +45,9 @@
"bundle-require": "^3.0.4",
"caller": "^1.0.1",
"dedent": "^0.7.0",
"dotenv": "^14.3.2",
"dotenv": "^15.0.0",
"dotenv-expand": "^6.0.1",
"esbuild": "^0.14.14",
"esbuild": "^0.14.16",
"find-up": "^6.2.0",
"g-status": "^2.0.2",
"globby": "^13.1.0",
Expand Down
2 changes: 1 addition & 1 deletion packages/doctor/package.json
Expand Up @@ -22,7 +22,7 @@
"test": "echo 'No test in @reskript/doctor'"
},
"devDependencies": {
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"@types/semver": "^7.3.9",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta"
Expand Down
2 changes: 1 addition & 1 deletion packages/init/package.json
Expand Up @@ -24,7 +24,7 @@
},
"devDependencies": {
"@types/inquirer": "^8.2.0",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"eslint": "^8.8.0",
"typescript": "^4.6.0-beta"
},
Expand Down
8 changes: 0 additions & 8 deletions packages/less-safe-loader/jest.config.js

This file was deleted.

14 changes: 7 additions & 7 deletions packages/less-safe-loader/package.json
Expand Up @@ -2,7 +2,7 @@
"name": "@reskript/less-safe-loader",
"version": "4.0.0-beta.0",
"license": "MIT",
"type": "commonjs",
"type": "module",
"main": "./dist/index.js",
"types": "./dist/index.d.ts",
"exports": {
Expand All @@ -21,14 +21,14 @@
"clean": "rm -rf dist",
"build": "tsc -p tsconfig.build.json",
"lint": "eslint --max-warnings=0 src",
"test": "jest"
"test": "vitest run"
},
"devDependencies": {
"@types/jest": "^27.0.3",
"@types/node": "^17.0.13",
"@types/node": "^17.0.14",
"c8": "^7.10.0",
"eslint": "^8.8.0",
"jest": "^27.4.5",
"ts-jest": "^27.1.3",
"typescript": "^4.6.0-beta"
"typescript": "^4.6.0-beta",
"vite": "^2.7.12",
"vitest": "^0.2.5"
}
}
3 changes: 2 additions & 1 deletion packages/less-safe-loader/src/__tests__/index.test.ts
@@ -1,4 +1,5 @@
import loader from '../index';
import {describe, test, expect} from 'vitest';
import loader from '../index.js';

describe('loader', () => {
test('is a loader function', () => {
Expand Down
3 changes: 2 additions & 1 deletion packages/less-safe-loader/src/__tests__/replace.test.ts
@@ -1,4 +1,5 @@
import replace from '../replace';
import {describe, test, expect} from 'vitest';
import replace from '../replace.js';

describe('replace', () => {
test('safe calc double quote', () => {
Expand Down
2 changes: 1 addition & 1 deletion packages/less-safe-loader/src/index.ts
@@ -1,4 +1,4 @@
import replace from './replace';
import replace from './replace.js';

export default function lessSafeLoader(this: any, source: string) {
this.cacheable();
Expand Down

0 comments on commit d7451e5

Please sign in to comment.