1
說,我正在製作一個npm包。如何從全局包運行npm腳本?
樣品的package.json:
{
"bin": { "cli": "cli.js" },
"scripts": {
"sample": "node sample.js"
}
}
樣品cli.js:
const shell = require('shelljs')
shell.exec('npm run sample')
然後,我跑npm link
現在,如果我跑從任何地方cli
,比其他項目存儲庫,它不運行。相反,它會引發錯誤。
const shell = require('shelljs')
, package_path = require('./path.json')
// I manually created this path.json containing the absolute path of the package
shell.exec('npm run --prefix ${package_path} sample')
這類作品:
我改變cli.js爲找到一個解決辦法。但主要限制是:
項目的所有貢獻者必須在克隆回購之後手動設置此路徑。
如果軟件包像
npm i -g package
那樣全局安裝,那麼這個路徑變化對用戶來說是煩人的。
什麼我問的是:
我如何可以自動設置路徑?
來達到同樣的行爲的任何其他更好方法,那就是, 調用從全球
cli
腳本npm script
?