-
-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use tsup
for bundling
#144
Changes from all commits
73d2322
7507a19
cf776a2
01285e1
775f71d
fe758df
befdf2d
d6bdabd
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,30 +11,24 @@ | |
"url": "https://github.com/MetaMask/utils.git" | ||
}, | ||
"license": "ISC", | ||
"sideEffects": false, | ||
"exports": { | ||
".": { | ||
"import": "./dist/esm/index.js", | ||
"require": "./dist/cjs/index.js", | ||
"import": "./dist/index.mjs", | ||
"require": "./dist/index.js", | ||
"types": "./dist/types/index.d.ts" | ||
}, | ||
"./package.json": "./package.json" | ||
}, | ||
"main": "./dist/cjs/index.js", | ||
"module": "./dist/esm/index.js", | ||
"main": "./dist/index.js", | ||
"module": "./dist/index.mjs", | ||
"types": "./dist/types/index.d.ts", | ||
"files": [ | ||
"dist/cjs/**", | ||
"dist/esm/**", | ||
"dist/types/**" | ||
"dist" | ||
], | ||
"scripts": { | ||
"build": "yarn build:source && yarn build:types", | ||
"build:cjs": "swc src --out-dir dist/cjs --config-file .swcrc.build.json --config module.type=commonjs", | ||
"build:clean": "rimraf dist && yarn build", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ah, I see that the |
||
"build": "tsup && yarn build:types", | ||
"build:docs": "typedoc", | ||
"build:esm": "swc src --out-dir dist/esm --config-file .swcrc.build.json --config module.type=es6 && yarn build:esm:package", | ||
"build:esm:package": "echo >dist/esm/package.json \"{\\\"type\\\":\\\"module\\\"}\"", | ||
"build:source": "yarn build:esm && yarn build:cjs", | ||
"build:types": "tsc --project tsconfig.build.json", | ||
"lint": "yarn lint:eslint && yarn lint:constraints && yarn lint:misc --check && yarn lint:dependencies --check && yarn lint:changelog", | ||
"lint:changelog": "auto-changelog validate", | ||
|
@@ -69,8 +63,6 @@ | |
"@metamask/eslint-config-jest": "^12.0.0", | ||
"@metamask/eslint-config-nodejs": "^12.0.0", | ||
"@metamask/eslint-config-typescript": "^12.0.0", | ||
"@swc/cli": "^0.1.62", | ||
"@swc/core": "^1.3.66", | ||
"@types/jest": "^28.1.7", | ||
"@types/node": "^17.0.23", | ||
"@typescript-eslint/eslint-plugin": "^5.43.0", | ||
|
@@ -88,11 +80,11 @@ | |
"jest-it-up": "^2.0.2", | ||
"prettier": "^2.7.1", | ||
"prettier-plugin-packagejson": "^2.3.0", | ||
"rimraf": "^3.0.2", | ||
"stdio-mock": "^1.2.0", | ||
"ts-jest": "^29.0.3", | ||
"ts-node": "^10.7.0", | ||
"tsd": "^0.24.1", | ||
"tsup": "^7.2.0", | ||
"typedoc": "^0.23.15", | ||
"typescript": "~4.8.4" | ||
}, | ||
|
@@ -107,7 +99,7 @@ | |
"lavamoat": { | ||
"allowScripts": { | ||
"@lavamoat/preinstall-always-fail": false, | ||
"@swc/core": true | ||
"tsup>esbuild": true | ||
} | ||
}, | ||
"tsd": { | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -18,6 +18,7 @@ | |
"./src/**/__tests__/**/*", | ||
"./src/**/__snapshots__/**/*", | ||
"./src/**/*.test.ts", | ||
"./src/**/*.test-d.ts", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oops, good catch. |
||
"./src/**/*.test.*.ts" | ||
] | ||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
import { defineConfig } from 'tsup'; | ||
|
||
export default defineConfig({ | ||
// The entry to bundle. | ||
entry: [ | ||
'src/**/*.ts', | ||
'!src/**/__fixtures__/**/*', | ||
'!src/**/__mocks__/**/*', | ||
'!src/**/__test__/**/*', | ||
'!src/**/__tests__/**/*', | ||
'!src/**/__snapshots__/**/*', | ||
'!src/**/*.test.ts', | ||
'!src/**/*.test-d.ts', | ||
'!src/**/*.test.*.ts', | ||
], | ||
|
||
// The output formats. We want to generate both CommonJS and ESM bundles. | ||
// https://tsup.egoist.dev/#bundle-formats | ||
format: ['cjs', 'esm'], | ||
|
||
// Generate sourcemaps as separate files. | ||
// https://tsup.egoist.dev/#generate-sourcemap-file | ||
sourcemap: true, | ||
|
||
// Clean the dist folder before bundling. | ||
clean: true, | ||
|
||
// Enables shimming of `__dirname` and `import.meta.url`, so that they work | ||
// in both CommonJS and ESM. | ||
// https://tsup.egoist.dev/#inject-cjs-and-esm-shims | ||
shims: true, | ||
|
||
// Hide unnecessary logs from the console. Warnings and errors will still be | ||
// shown. | ||
silent: true, | ||
|
||
// Split the output into chunks. This is useful for tree-shaking. | ||
// https://tsup.egoist.dev/#code-splitting | ||
splitting: true, | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We use this option in the module template, but it wasn't enabled in
utils
yet.