aboutsummaryrefslogtreecommitdiffstats
path: root/build/command.js
diff options
context:
space:
mode:
authorTimmy Willison <timmywil@users.noreply.github.com>2023-09-18 12:39:00 -0400
committerGitHub <noreply@github.com>2023-09-18 12:39:00 -0400
commit2bdecf8b7bd10864e5337a4e24e39476c78cf23a (patch)
tree4685fc5ca912e368c294a3949c7ef5b663fec980 /build/command.js
parentf75daab09102a4dd5107deadb55d4a169f86254a (diff)
downloadjquery-2bdecf8b7bd10864e5337a4e24e39476c78cf23a.tar.gz
jquery-2bdecf8b7bd10864e5337a4e24e39476c78cf23a.zip
Build: migrate most grunt tasks off of grunt
Updated tasks include: - lint - npmcopy - build, minify, and process for distribution. - new custom build command using yargs - compare size of minified/gzip built files - pretest scripts, including qunit-fixture, babel transpilation, and npmcopy - node smoke tests - promises aplus tests - new watch task using `rollup.watch` directly Also: - upgraded husky and added the new lint command - updated lint config to use new "flat" config format. See https://eslint.org/docs/latest/use/configure/configuration-files-new - Temporarily disabled one lint rule until flat config is supported by eslint-plugin-import. See https://github.com/import-js/eslint-plugin-import/issues/2556 - committed package-lock.json - updated all test scripts to use the new build - added an express test server that uses middleware-mockserver (this can be used to run tests without karma) - build-all-variants is now build:all Close gh-5318
Diffstat (limited to 'build/command.js')
-rwxr-xr-xbuild/command.js75
1 files changed, 75 insertions, 0 deletions
diff --git a/build/command.js b/build/command.js
new file mode 100755
index 000000000..ee1a153bc
--- /dev/null
+++ b/build/command.js
@@ -0,0 +1,75 @@
+"use strict";
+
+const { build } = require( "./tasks/build" );
+const yargs = require( "yargs/yargs" );
+const slimExclude = require( "./tasks/lib/slim-exclude" );
+
+const argv = yargs( process.argv.slice( 2 ) )
+ .version( false )
+ .command( {
+ command: "[options]",
+ describe: "Build a jQuery bundle"
+ } )
+ .option( "filename", {
+ alias: "f",
+ type: "string",
+ description:
+ "Set the filename of the built file. Defaults to jquery.js."
+ } )
+ .option( "dir", {
+ alias: "d",
+ type: "string",
+ description:
+ "Set the dir to which to output the built file. Defaults to /dist."
+ } )
+ .option( "version", {
+ alias: "v",
+ type: "string",
+ description:
+ "Set the version to include in the built file. " +
+ "Defaults to the version in package.json plus the " +
+ "short commit SHA and any excluded modules."
+ } )
+ .option( "watch", {
+ alias: "w",
+ type: "boolean",
+ description:
+ "Watch the source files and rebuild when they change."
+ } )
+ .option( "exclude", {
+ alias: "e",
+ type: "array",
+ description:
+ "Modules to exclude from the build. " +
+ "Specifying this option will cause the " +
+ "specified modules to be excluded from the build."
+ } )
+ .option( "include", {
+ alias: "i",
+ type: "array",
+ description:
+ "Modules to include in the build. " +
+ "Specifying this option will override the " +
+ "default included modules and only include these modules."
+ } )
+ .option( "esm", {
+ type: "boolean",
+ description:
+ "Build an ES module (ESM) bundle. " +
+ "By default, a UMD bundle is built."
+ } )
+ .option( "slim", {
+ alias: "s",
+ type: "boolean",
+ description: "Build a slim bundle, which excludes " +
+ slimExclude.join( ", " )
+ } )
+ .option( "amd", {
+ type: "string",
+ description:
+ "Set the name of the AMD module. Leave blank to make an anonymous module."
+ } )
+ .help()
+ .argv;
+
+build( argv );