Skip to content
  • Joey Perrott's avatar
    build: rely on engines to prevent using npm for dependency install (#41477) · c385e744
    Joey Perrott authored
    Rather than relying on a preinstall script, set `engine-strict` to `true` in a
    project `.npmrc` file, relying on the `engines` having `npm` set to note that
    yarn should be used instead.
    
    ---
    
    Output from `npm install` changes from:
    ```
    $ npm install
    
    > angular-srcs@12.0.0-next.7 preinstall /usr/local/account/js/angular
    > node tools/yarn/check-yarn.js
    
    /usr/local/account/js/angular/tools/yarn/check-yarn.js:12
      throw new Error(
      ^
    
    Error: Please use Yarn instead of NPM to install dependencies. See: https://yarnpkg.com/lang/en/docs/install/
        at Object.<anonymous> (/usr/local/account/js/angular/tools/yarn/check-yarn.js:12:9)
        at Module._compile (internal/modules/cjs/loader.js:778:30)
        at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
        at Module.load (internal/modules/cjs/loader.js:653:32)
        at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
        at Function.Module._load (internal/modules/cjs/loader.js:585:3)
        at Function.Module.runMain (internal/modules/cjs/loader.js:831:12)
        at startup (internal/bootstrap/node.js:283:19)
        at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
    npm ERR! code ELIFECYCLE
    npm ERR! errno 1
    npm ERR! angular-srcs@12.0.0-next.7 preinstall: `node tools/yarn/check-yarn.js`
    npm ERR! Exit status 1
    npm ERR!
    npm ERR! Failed at the angular-srcs@12.0.0-next.7 preinstall script.
    npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /usr/local/account/.npm/_logs/2021-04-06T22_54_02_292Z-debug.log
    ```
    to
    ```
    $ npm install
    npm ERR! code ENOTSUP
    npm ERR! notsup Unsupported engine for angular-srcs@12.0.0-next.7: wanted: {"node":">=10.19.0 <13.0.0","yarn":">=1.22.4 <2","npm":"Plesae use yarn instead of NPM to install dependencies"} (current: {"node":"10.20.1","npm":"6.14.4"})
    npm ERR! notsup Not compatible with your version of node/npm: angular-srcs@12.0.0-next.7
    npm ERR! notsup Not compatible with your version of node/npm: angular-srcs@12.0.0-next.7
    npm ERR! notsup Required: {"node":">=10.19.0 <13.0.0","yarn":">=1.22.4 <2","npm":"Plesae use yarn instead of NPM to install dependencies"}
    npm ERR! notsup Actual:   {"npm":"6.14.4","node":"10.20.1"}
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /usr/local/account/.npm/_logs/2021-04-06T22_53_23_912Z-debug.log
    ```
    
    PR Close #41477
    c385e744