node.js - why package.json script works fine on local project but doesn't work on a dependency project -


i have created npm module(let call modulea) , defined clean script in package.json file below:

"scripts": {     "test": "nyc mocha tests/ --opts mocha.opts",     "build": "babel -d dist/ src/",     "prepublish": "yarn run clean && yarn run build",     "postinstall": "yarn run clean && yarn run build",     "clean": "rimraf ./dist"   }, 

i use rimraf remove dist directory. dependency defined in devdependencies "rimraf": "^2.6.1". works fine on project. in 1 of other project (let call moduleb) has dependency on module, yarn install doesn't work , below error:

$ rimraf ./dist sh: 1: rimraf: not found  

this error happens when npm/yarn building moduleb. have checked rimraf exist in node_modules/.bin directory in moduleb. works fine if install rimraf globally. wonder how can make npm/yarn use rimraf node_modules/.bin/rimraf?

btw, put rimraf in devdependencies in moduleb.

i tried update script in modulea use rimraf node_modules/.bin/rimraf below:

"clean": "node_modules/.bin/rimraf ./dist" 

it works fine on modulea. got below error when run yarn install on moduleb:

$ node_modules/.bin/rimraf ./dist  info visit https://yarnpkg.com/en/docs/cli/run documentation command. sh: node_modules/.bin/rimraf: no such file or directory error command failed exit code 127. 

see issues:

now make sure yarn clean and npm clean works expected.

for example not work if didn't install rimraf globally:

$ rimraf ./dist 

but should work:

$ ./node_modules/.bin/rimraf ./dist 

test commands first:

npm run clean 

and:

yarn run clean 

to use "clean": "rimraf ./dist" script defined in package.json.

note ./node_modules/.bin added path when run package.json scripts.

try running commands simple ones run script directly without npm or yarn, test both npmand yarn, , try narrow down problem postinstall hooks.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -