簡體   English   中英

node.js模塊中的權限問題

[英]Issue with permissions in a node.js module

我構建了一個名為emeraldfw的npm模塊並將emeraldfw發布。 我的package.json文件是

{
  "name": "emeraldfw",
  "version": "0.6.0",
  "bin": "./emeraldfw.js",
  "description": "Emerald Framework is a language-agnostig web development framework, designed to make developer's lives easier and fun while coding.",
  "main": "emeraldfw.js",
  "directories": {
    "example": "examples",
    "test": "test"
  },
  "scripts": {
    "test": "mocha"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/EdDeAlmeidaJr/emeraldfw.git"
  },
  "keywords": [
    "web",
    "development",
    "framework",
    "language",
    "agnostic",
    "react"
  ],
  "author": "Ed de Almeida",
  "license": "MIT",
  "bugs": {
    "url": "https://github.com/EdDeAlmeidaJr/emeraldfw/issues"
  },
  "homepage": "https://github.com/EdDeAlmeidaJr/emeraldfw#readme",
  "devDependencies": {
    "jshint": "^2.9.4",
    "mocha": "^3.3.0"
  },
  "dependencies": {
    "jsonfile": "^3.0.0",
    "react": "^15.5.4",
    "vorpal": "^1.12.0"
  }
}

如您所見,我聲明了一個"bin": "./emeraldfw.js"二進制文件,它對應於應用程序本身。 package.json文檔說這將在node.js bin /目錄下創建指向應用程序可執行文件的鏈接。 這個工作正常,但是當我全局安裝它( npm install emeraldfw -g )然后從命令行運行它時,我收到錯誤消息 在此處輸入圖片說明

所有其他節點模塊都運行良好,並且我的應用程序通過了所有測試,當我直接在開發目錄(帶有node emeraldfw.js )中運行它時,它確實運行良好。

我不是node.js專家,並且在解決此錯誤兩天之后,在這里尋求幫助。

有任何想法嗎?

編輯:

我檢查了我的節點二進制文件(emeraldfw.js)的權限,該權限屬於edvaldo:edvaldo,即我的用戶和組。 並且它具有可執行權限設置。 使用這些設置,在我自己的區域內應該沒有權限問題,您不覺得嗎?

您是否嘗試以su身份安裝?

好吧,shebang問題在這里。

在創建npm模塊之前,您需要閱讀其文檔的每一行。

如此處所述您需要使用shebang來讓您的操作系統知道它應該與節點一起運行,而不是操作系統自己的腳本執行主機。

請確保bin中引用的文件以#!/usr/bin/env node開頭,否則腳本將在沒有節點可執行文件的情況下啟動!

因此,通過在npm模塊上使用shebang,您可以告訴os創建平台特定的可執行文件,從而使其可以使用node運行腳本。 例如,Windows上的.cmd文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM