diff options
author | Timmy Willison <timmywil@users.noreply.github.com> | 2023-09-18 12:39:00 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-18 12:39:00 -0400 |
commit | 2bdecf8b7bd10864e5337a4e24e39476c78cf23a (patch) | |
tree | 4685fc5ca912e368c294a3949c7ef5b663fec980 /build/tasks/npmcopy.js | |
parent | f75daab09102a4dd5107deadb55d4a169f86254a (diff) | |
download | jquery-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.js | 42 |
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(); |