Skip to content

Commit

Permalink
fix npm lifecycle hook (#34273)
Browse files Browse the repository at this point in the history
Summary:
In `0.70-stable` we started seeing `yarn run lint` fail; turns out, this is happening because the latest release of `react-native/eslint-plugin-specs` 0.0.4 (from ea8d8e2) is faulty: the underlying reason is that since 0.0.2 there was this local workaround in place 2d06e6a (that changes a flag from false to true) but in NPM 8 the lifecycle hook `prepublish` has [been deprecated](https://docs.npmjs.com/cli/v8/using-npm/scripts#life-cycle-scripts) so this pre publishing script to change the flag was not run (you can easily verify by checking the node_module and see `react-native-modules.js` the flag on L17 is set to false).

This PR addresses it by moving to the new lifecycle hook `prepack` (and modifies the other files accordingly).

After this PR is merged, we'll need to cherry pick it into 0.70 and do both a new release from the 0.70 branch and one from the main branch to have new versions of this module with the flag set correctly.

## Changelog

<!-- Help reviewers and the release process by writing your own changelog entry. For an example, see:
https://reactnative.dev/contributing/changelogs-in-pull-requests
-->

[General] [Fixed] - Fix eslint-plugin-specs prepack npm lifecycle hook now that we use npm 8

Pull Request resolved: #34273

Test Plan: Go in the `eslint-plugin-specs` folder, run `npm pack`, unzip the generated tar file, go into `package`, verify that L17 of `react-native-modules.js` is correctly changed to `const PACKAGE_USAGE = true;` (instead of false - which is what happen without this fix).

Reviewed By: GijsWeterings

Differential Revision: D38151433

Pulled By: dmitryrykun

fbshipit-source-id: 7c4f13dae70eb731d57cbafa90f7be05c9bb8576
  • Loading branch information
kelset authored and Dmitry Rykun committed Jul 26, 2022
1 parent eb67678 commit c40d270
Show file tree
Hide file tree
Showing 3 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion packages/eslint-plugin-specs/package.json
Expand Up @@ -9,7 +9,7 @@
"directory": "packages/eslint-plugin-specs"
},
"scripts": {
"prepublish": "node prepublish.js"
"prepack": "node prepack.js"
},
"dependencies": {
"@babel/core": "^7.14.0",
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion packages/eslint-plugin-specs/react-native-modules.js
Expand Up @@ -13,7 +13,7 @@
const path = require('path');
const withBabelRegister = require('./with-babel-register');

// We run yarn prepublish before publishing package which will set this value to true
// We use the prepack hook before publishing package to set this value to true
const PACKAGE_USAGE = false;
const ERRORS = {
misnamedHasteModule(hasteModuleName) {
Expand Down

0 comments on commit c40d270

Please sign in to comment.