aboutsummaryrefslogtreecommitdiffstats
path: root/build/tasks/npmcopy.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/tasks/npmcopy.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/tasks/npmcopy.js')
-rw-r--r--build/tasks/npmcopy.js42
1 files changed, 42 insertions, 0 deletions
diff --git a/build/tasks/npmcopy.js b/build/tasks/npmcopy.js
new file mode 100644
index 000000000..c57acc2e7
--- /dev/null
+++ b/build/tasks/npmcopy.js
@@ -0,0 +1,42 @@
+"use strict";
+
+const fs = require( "fs" );
+const path = require( "path" );
+
+const projectDir = path.resolve( __dirname, "..", ".." );
+
+const files = {
+ "bootstrap/bootstrap.css": "bootstrap/dist/css/bootstrap.css",
+ "bootstrap/bootstrap.min.css": "bootstrap/dist/css/bootstrap.min.css",
+ "bootstrap/bootstrap.min.css.map": "bootstrap/dist/css/bootstrap.min.css.map",
+
+ "core-js-bundle/core-js-bundle.js": "core-js-bundle/minified.js",
+ "core-js-bundle/LICENSE": "core-js-bundle/LICENSE",
+
+ "npo/npo.js": "native-promise-only/lib/npo.src.js",
+
+ "qunit/qunit.js": "qunit/qunit/qunit.js",
+ "qunit/qunit.css": "qunit/qunit/qunit.css",
+ "qunit/LICENSE.txt": "qunit/LICENSE.txt",
+
+ "requirejs/require.js": "requirejs/require.js",
+
+ "sinon/sinon.js": "sinon/pkg/sinon.js",
+ "sinon/LICENSE.txt": "sinon/LICENSE"
+};
+
+async function npmcopy() {
+ await fs.promises.mkdir( path.resolve( projectDir, "external" ), {
+ recursive: true
+ } );
+ for ( const [ dest, source ] of Object.entries( files ) ) {
+ const from = path.resolve( projectDir, "node_modules", source );
+ const to = path.resolve( projectDir, "external", dest );
+ const toDir = path.dirname( to );
+ await fs.promises.mkdir( toDir, { recursive: true } );
+ await fs.promises.copyFile( from, to );
+ console.log( `${source} → ${dest}` );
+ }
+}
+
+npmcopy();