[英]Can my NPM CLI package be executed on CMD without installing globally?
我寫了一個 NPM package ,它有自己的 CLI 命令。
讓我們將 package 命名為xyz
並想象它現在可以在npmjs.com上使用
因此,假設用戶通過運行npm install xyz
在他的項目中安裝此 package 。
現在他想在他的項目中的終端上運行xyz
package 提供的 CLI 命令。
xyz do_this
這可以在不由用戶全局安裝此 package 的情況下完成嗎? 或者沒有任何進一步的用戶配置?
這是 xyz package 的package.json
的一部分。
{
"name": "xyz",
"version": "1.0.0",
"description": "Description",
"main": "index.js",
"preferGlobal": true,
"bin": "./index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
........
以下是 npm 的工作原理。 當您在本地目錄中安裝 package 時,它會將可執行的依賴文件安裝在 node_modules 中的文件夾內,該文件夾位於 package.json 的文件夾中,但如果您將其全局設置為全局路徑。 例如,當我運行npm install http-server
時,我的可執行文件以./node_modules/http-server/bin/http-server
結尾,但是當我全局安裝它時,我將它作為node_modules/http-server/bin
解決這個問題的方法是,如果您只想運行可執行文件,只需在內部執行它,就像這樣./node_modules/http-server/bin/http-server
。 如果您希望它作為命令,您還需要讓用戶將目錄添加到他們的路徑中,這樣當用戶輸入命令時,計算機會在該文件夾中查找命令。 這是在 Linux 中添加 PATH 目錄的指南,您只需添加目錄/pathtofolder/node_modules/http-server/bin/
或任何您的文件夾。 https://linuxize.com/post/how-to-add-directory-to-path-in-linux/
例如,如果我想將本地文件夾中的 http-server 添加到我的路徑中,我會運行
export PATH="/pathtofolder/node_modules/http-server/bin/:$PATH"
祝你好運! 讓我知道我可以如何幫助你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.