Build: Restore the external directory

In gh-4466, we removed the `external` directory in favor of loading some files
directly from `node_modules`. This works fine locally but when deploying code
for tests, this makes it impossible to not deploy `node_modules` as well. To
avoid the issue, this change restores usage of the `external` directory.

One change is that we no longer commit this directory to the repository, its
only purpose is to have clear isolation from `node_modules`.

Ref gh-4466
Closess gh-4865
This commit is contained in:
Michał Gołębiowski-Owczarek 2021-03-24 23:36:25 +01:00 committed by GitHub
parent b2bbaa36d4
commit a684e6ba83
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 34 additions and 11 deletions

View File

@ -1,4 +1,5 @@
amd
external
node_modules
*.min.js
dist/**

2
.gitignore vendored
View File

@ -17,7 +17,7 @@ npm-debug.log*
!/dist/.eslintrc.json
/amd
/external
/node_modules
/test/data/core/jquery-iterability-transpiled.js

View File

@ -7,6 +7,7 @@
/.travis.yml
/build
/external
/speed
/test
/Gruntfile.js

View File

@ -71,6 +71,25 @@ module.exports = function( grunt ) {
}
}
},
npmcopy: {
all: {
options: {
destPrefix: "external"
},
files: {
"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"
}
}
},
jsonlint: {
pkg: {
src: [ "package.json" ]
@ -162,9 +181,9 @@ module.exports = function( grunt ) {
},
files: [
"test/data/jquery-1.9.1.js",
"node_modules/sinon/pkg/sinon.js",
"node_modules/native-promise-only/lib/npo.src.js",
"node_modules/requirejs/require.js",
"external/sinon/sinon.js",
"external/npo/npo.js",
"external/requirejs/require.js",
"test/data/testinit.js",
"test/jquery.js",
@ -188,7 +207,7 @@ module.exports = function( grunt ) {
served: true,
nocache: true
},
{ pattern: "node_modules/**", included: false, served: true },
{ pattern: "external/**", included: false, served: true },
{
pattern: "test/**/*.@(js|css|jpg|html|xml|svg)",
included: false,
@ -343,6 +362,7 @@ module.exports = function( grunt ) {
] );
grunt.registerTask( "test:prepare", [
"npmcopy",
"qunit_fixture",
"babel:tests"
] );

View File

@ -42,6 +42,7 @@
"grunt-jsonlint": "2.1.2",
"grunt-karma": "4.0.0",
"grunt-newer": "1.3.0",
"grunt-npmcopy": "0.2.0",
"gzip-js": "0.3.2",
"husky": "4.2.5",
"insight": "0.10.3",

View File

@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>jQuery Test Suite</title>
<link rel="stylesheet" href="../node_modules/qunit/qunit/qunit.css" />
<link rel="stylesheet" href="../external/qunit/qunit.css" />
<link rel="stylesheet" href="data/testsuite.css" />
<!--
@ -12,10 +12,10 @@
-->
<script src="data/jquery-1.9.1.js"></script>
<script src="../node_modules/qunit/qunit/qunit.js"></script>
<script src="../node_modules/sinon/pkg/sinon.js"></script>
<script src="../node_modules/native-promise-only/lib/npo.src.js"></script>
<script src="../node_modules/requirejs/require.js"></script>
<script src="../external/qunit/qunit.js"></script>
<script src="../external/sinon/sinon.js"></script>
<script src="../external/npo/npo.js"></script>
<script src="../external/requirejs/require.js"></script>
<!-- See testinit for the list of tests -->
<script src="data/testinit.js"></script>

View File

@ -5,7 +5,7 @@
<title>DEBUG</title>
<meta charset="utf-8">
<!-- Karma serves this page from /context.html. Other files are served from /base -->
<link rel="stylesheet" href="/base/node_modules/qunit/qunit/qunit.css" />
<link rel="stylesheet" href="/base/external/qunit/qunit/qunit.css" />
<link rel="stylesheet" href="/base/test/data/testsuite.css" />
</head>
<body id="body">