yarn和npm透传参数区别

84 阅读1分钟

在打包@boss/utils文档时遇到的问题,遇到了yarn和npm透传参数的区别

"scripts": {
   "docs:build": "vitepress build docs",
}
// base是给页面添加路径前缀为/utils
// yarn 打包时通过透传参数
yarn docs:build --base=/utils  => vitepress build docs --base=/utils ​


// 如果使用npm方式的话,按照yarn的思路是不会透传过去的
npm run docs:build --base=/utils => vitepress build docs


// npm应该这样使用
npm run docs:build -- --base=/utils => vitepress build docs --base=/utils




// 补充: npm想要获取base内容
npm run docs:build --base=/utils 


const base = process.env.npm_config_base
console.log(base) // /utils

继续尝试

"scripts": {
   "docs:build": "vitepress build docs",
"ybuild": "yarn docs:build",
   "nbuild": "npm run docs:build" 
}
yarn ybuild --base=/utils 
=> yarn docs:build --base=/utils
=> vitepress build docs --base=/utils


npm run nbuild -- --base=/utils
=> npm run docs:build --base=/utils
=> vitepress build docs => 后面无base了


npm run nbuild -- -- --base=/utils
=> npm run docs:build -- --base=/utils
=> vitepress build docs --base=/utils 

总结:yarn透传参数,一路透传到底

npm透传参数,需要通过 -- 的方式,透传一层则是两个--,透传两层则是三个--,依次类推