Skip to content
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

Remove src to lib rewrites on package.json files #9612

Merged
merged 12 commits into from
Apr 30, 2024
Merged
39 changes: 1 addition & 38 deletions gulpfile.js
Expand Up @@ -29,12 +29,6 @@ const paths = {
...IGNORED_PACKAGES,
],
packageOther: ['packages/*/*/src/**/dev-prelude.js'],
packageJson: [
'packages/core/parcel/package.json',
'packages/utils/create-react-app/package.json',
'packages/dev/query/package.json',
'packages/dev/bundle-stats-cli/package.json',
],
packages: 'packages/',
};

Expand Down Expand Up @@ -65,16 +59,7 @@ exports.clean = function clean(cb) {
);
};

exports.default = exports.build = gulp.series(
gulp.parallel(buildBabel, copyOthers),
// Babel reads from package.json so update these after babel has run
paths.packageJson.map(
packageJsonPath =>
function updatePackageJson() {
return _updatePackageJson(packageJsonPath);
},
),
);
exports.default = exports.build = gulp.parallel(buildBabel, copyOthers);

function buildBabel() {
return gulp
Expand All @@ -91,28 +76,6 @@ function copyOthers() {
.pipe(gulp.dest(paths.packages));
}

function _updatePackageJson(file) {
return gulp
.src(file)
.pipe(
new TapStream(vinyl => {
let json = JSON.parse(vinyl.contents);
// Replace all references to `src` in package.json bin entries
// `lib` equivalents.
if (typeof json.bin === 'object' && json.bin != null) {
for (let [binName, binPath] of Object.entries(json.bin)) {
json.bin[binName] = binPath.replace('src', 'lib');
}
} else if (typeof json.bin === 'string') {
json.bin = json.bin.replace('src', 'lib');
}

vinyl.contents = Buffer.from(JSON.stringify(json, null, 2));
}),
)
.pipe(gulp.dest(path.dirname(file)));
}

function renameStream(fn) {
return new TapStream(vinyl => {
let relative = path.relative(vinyl.base, vinyl.path);
Expand Down
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -12,7 +12,7 @@
],
"scripts": {
"build": "yarn build-bundles && cross-env NODE_ENV=production PARCEL_BUILD_ENV=production gulp",
"build-bundles": "rimraf --glob packages/*/*/lib && cross-env NODE_ENV=production PARCEL_BUILD_ENV=production PARCEL_SELF_BUILD=true parcel build packages/core/{fs,codeframe,package-manager,utils} packages/reporters/{cli,dev-server} packages/utils/{parcel-lsp,parcel-lsp-protocol}",
"build-bundles": "rimraf --glob packages/*/*/lib && lerna run dev:prepare && cross-env NODE_ENV=production PARCEL_BUILD_ENV=production PARCEL_SELF_BUILD=true parcel build packages/core/{fs,codeframe,package-manager,utils} packages/reporters/{cli,dev-server} packages/utils/{parcel-lsp,parcel-lsp-protocol}",
yamadapc marked this conversation as resolved.
Show resolved Hide resolved
"build-ts": "lerna run build-ts && lerna run check-ts",
"build-native": "node scripts/build-native.js",
"build-native-release": "node scripts/build-native.js --release",
Expand Down
1 change: 1 addition & 0 deletions packages/core/parcel/.npmignore
@@ -0,0 +1 @@
/bin/dev-bin.js
8 changes: 8 additions & 0 deletions packages/core/parcel/bin/dev-bin.js
@@ -0,0 +1,8 @@
/**
* DEV BIN - DO NOT PUBLISH
*
* This file is copied into /lib/ by `yarn run dev:prepare`
*
* When babel build runs it is overwritten by another asset.
*/
require('../src/bin');
2 changes: 2 additions & 0 deletions packages/core/parcel/bin/parcel.js
@@ -0,0 +1,2 @@
#!/usr/bin/env node
require('../lib/bin');
1 change: 1 addition & 0 deletions packages/core/parcel/ensure-no-dev-lib.sh
9 changes: 7 additions & 2 deletions packages/core/parcel/package.json
Expand Up @@ -14,9 +14,13 @@
"type": "git",
"url": "https://github.com/parcel-bundler/parcel.git"
},
"bin": "src/bin.js",
"bin": "bin/parcel.js",
"main": "lib/bin.js",
"source": "src/bin.js",
"scripts": {
"prepack": "./ensure-no-dev-lib.sh",
"dev:prepare": "rimraf ./lib/ && mkdir -p lib && cp ./bin/dev-bin.js ./lib/bin.js"
},
"engines": {
"node": ">= 16.0.0"
},
Expand All @@ -39,6 +43,7 @@
},
"devDependencies": {
"@babel/core": "^7.22.11",
"@parcel/babel-register": "2.12.0"
"@parcel/babel-register": "2.12.0",
"rimraf": "^5.0.5"
}
}
1 change: 1 addition & 0 deletions packages/dev/bundle-stats-cli/.npmignore
@@ -0,0 +1 @@
/bin/dev-bin.js
2 changes: 2 additions & 0 deletions packages/dev/bundle-stats-cli/bin/bundle-stats.js
@@ -0,0 +1,2 @@
#!/usr/bin/env node
require('../lib/bin');
8 changes: 8 additions & 0 deletions packages/dev/bundle-stats-cli/bin/dev-bin.js
@@ -0,0 +1,8 @@
/**
* DEV BIN - DO NOT PUBLISH
*
* This file is copied into /lib/ by `yarn run dev:prepare`
*
* When babel build runs it is overwritten by another asset.
*/
require('../src/bin');
1 change: 1 addition & 0 deletions packages/dev/bundle-stats-cli/ensure-no-dev-lib.sh
9 changes: 7 additions & 2 deletions packages/dev/bundle-stats-cli/package.json
Expand Up @@ -16,7 +16,11 @@
"main": "lib/cli.js",
"source": "src/cli.js",
"bin": {
"parcel-bundle-stats": "src/bin.js"
"parcel-bundle-stats": "bin/bundle-stats.js"
},
"scripts": {
"prepack": "./ensure-no-dev-lib.sh",
"dev:prepare": "rimraf ./lib/ && mkdir -p lib && cp ./bin/dev-bin.js ./lib/bin.js"
},
"engines": {
"node": ">= 16.0.0",
Expand All @@ -31,6 +35,7 @@
},
"devDependencies": {
"@parcel/babel-register": "2.12.0",
"@parcel/types": "2.12.0"
"@parcel/types": "2.12.0",
"rimraf": "^5.0.5"
}
}
1 change: 1 addition & 0 deletions packages/dev/query/.npmignore
@@ -0,0 +1 @@
/bin/dev-bin.js
8 changes: 8 additions & 0 deletions packages/dev/query/bin/dev-bin.js
@@ -0,0 +1,8 @@
/**
* DEV BIN - DO NOT PUBLISH
*
* This file is copied into /lib/ by `yarn run dev:prepare`
*
* When babel build runs it is overwritten by another asset.
*/
require('../src/bin');
2 changes: 2 additions & 0 deletions packages/dev/query/bin/parcel-query.js
@@ -0,0 +1,2 @@
#!/usr/bin/env node
require('../lib/bin');
1 change: 1 addition & 0 deletions packages/dev/query/ensure-no-dev-lib.sh
9 changes: 7 additions & 2 deletions packages/dev/query/package.json
Expand Up @@ -9,12 +9,16 @@
"type": "opencollective",
"url": "https://opencollective.com/parcel"
},
"scripts": {
"prepack": "./ensure-no-dev-lib.sh",
"dev:prepare": "rimraf ./lib/ && mkdir -p lib && cp ./bin/dev-bin.js ./lib/bin.js"
},
"repository": {
"type": "git",
"url": "https://github.com/parcel-bundler/parcel.git"
},
"bin": {
"parcel-query": "src/bin.js"
"parcel-query": "bin/parcel-query.js"
},
"main": "src/index.js",
"dependencies": {
Expand All @@ -27,6 +31,7 @@
},
"devDependencies": {
"@babel/core": "^7.22.11",
"@parcel/babel-register": "2.12.0"
"@parcel/babel-register": "2.12.0",
"rimraf": "^5.0.5"
}
}
1 change: 1 addition & 0 deletions packages/utils/create-react-app/.npmignore
@@ -0,0 +1 @@
/bin/dev-bin.js
8 changes: 8 additions & 0 deletions packages/utils/create-react-app/bin/dev-bin.js
@@ -0,0 +1,8 @@
/**
* DEV BIN - DO NOT PUBLISH
*
* This file is copied into /lib/ by `yarn run dev:prepare`
*
* When babel build runs it is overwritten by another asset.
*/
require('../src/bin');
1 change: 1 addition & 0 deletions packages/utils/create-react-app/ensure-no-dev-lib.sh
12 changes: 9 additions & 3 deletions packages/utils/create-react-app/package.json
Expand Up @@ -2,7 +2,7 @@
"name": "@parcel/create-react-app",
"version": "2.12.0",
"bin": {
"parcel-create-react-app": "src/bin.js"
"parcel-create-react-app": "lib/bin.js"
},
"main": "src/bin.js",
"repository": {
Expand All @@ -13,8 +13,13 @@
"source": "src/bin.js",
"files": [
"templates",
"lib"
"lib",
"bin"
],
"scripts": {
"prepack": "./ensure-no-dev-lib.sh",
"dev:prepare": "rimraf ./lib/ && mkdir -p lib && cp ./bin/dev-bin.js ./lib/bin.js"
},
"license": "MIT",
"publishConfig": {
"access": "public"
Expand All @@ -32,6 +37,7 @@
},
"devDependencies": {
"@babel/core": "^7.22.11",
"@parcel/babel-register": "2.12.0"
"@parcel/babel-register": "2.12.0",
"rimraf": "^5.0.5"
}
}
12 changes: 12 additions & 0 deletions scripts/ensure-no-dev-lib.sh
@@ -0,0 +1,12 @@
#!/bin/bash

set -e

if grep -q "DEV BIN - DO NOT PUBLISH" lib/bin.js
then
echo "found dev files in lib"
exit 1
else
echo "no dev files in lib"
exit 0
fi