얼마 전에 npm에 게시 한 모듈을 작성했습니다 (https://npmjs.org/package/wisp)
따라서 명령 줄에서 올바르게 설치됩니다.
$ npm i -g wisp
그러나 명령 줄에서 실행할 때 낙관론이 설치되지 않았다는 오류가 계속 발생합니다.
$ wisp
Error: Cannot find module 'optimist'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:12:10)
at Object.<anonymous> (/usr/local/lib/node_modules/wisp/wisp:96:4)
at Module._compile (module.js:449:26)
at Object.exports.run (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:68:25)
at compileScript (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:135:29)
at fs.stat.notSources.(anonymous function) (/usr/local/lib/node_modules/coffee-script/lib/coffee-script/command.js:110:18)
그러나 package.json에서 종속성으로 지정했습니다.
{
"name": "wisp",
"author": "Brendan Scarvell <bscarvell@gmail.com>",
"version": "0.1.0",
"description": "Global nodejs file server",
"dependencies": {
"optimist": "~0.3.4"
},
"repository": "git://github.com/tehlulz/wisp",
"bin": {
"wisp" : "./wisp"
}
}
누구든지 이것을 실행하기 위해 무엇을해야하는지 알고 있습니까? bin에 실행 파일을 추가하는 bin 부분과 관련이 있으며 해당 디렉토리의 node_modules가 비어 있습니다. 이 문제를 해결하는 방법을 모릅니다.
답변
다른 사람 이이 문제가 발생하면 내 npm
위치가 아닌 위치에 설치 했기 때문에이 문제가 발생했습니다 NODE_PATH
.
[root@uberneek ~]# which npm
/opt/bin/npm
[root@uberneek ~]# which node
/opt/bin/node
[root@uberneek ~]# echo $NODE_PATH
내 NODE_PATH가 비어 있었고 실행 npm install --global --verbose promised-io
중으로 설치 중임을 보여주었습니다 /opt/lib/node_modules/promised-io
.
[root@uberneek ~]# npm install --global --verbose promised-io
npm info it worked if it ends with ok
npm verb cli [ '/opt/bin/node',
npm verb cli '/opt/bin/npm',
npm verb cli 'install',
npm verb cli '--global',
npm verb cli '--verbose',
npm verb cli 'promised-io' ]
npm info using npm@1.1.45
npm info using node@v0.8.4
[cut]
npm info build /opt/lib/node_modules/promised-io
npm verb from cache /opt/lib/node_modules/promised-io/package.json
npm verb linkStuff [ true, '/opt/lib/node_modules', true, '/opt/lib/node_modules' ]
[cut]
내 스크립트가 실패합니다 require('promised-io/promise')
:
[neek@uberneek project]$ node buildscripts/stringsmerge.js
module.js:340
throw err;
^
Error: Cannot find module 'promised-io/promise'
at Function.Module._resolveFilename (module.js:338:15)
아마를 사용하여 소스에서 node 및 npm을 설치했을 것입니다 configure --prefix=/opt
. 이것이 왜 설치된 모듈을 찾을 수 없는지 모르겠습니다. 지금 수정은 올바른 디렉토리에서 NODE_PATH를 가리 키도록하는 것입니다.
export NODE_PATH=/opt/lib/node_modules
나의 require('promised-io/promise')
성공
답변
prog (mac)의 시작 부분에 이것을 추가하십시오 :
module.paths.push('/usr/local/lib/node_modules');
답변
기본적으로 노드는 전역 모듈을로드하기 위해 / usr / local / lib / node_module 내부를 찾지 않습니다. http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders에 설명 된 모듈 로딩을 참조하십시오.
따라서 1) / usr / local / lib / node_module을 NODE_PATH에 추가하고 내보내거나 2) 설치된 노드 모듈을 / usr / local / lib / node에 복사해야합니다. (로드 모듈 노드 링크에 설명 된 것처럼이 경로를 검색하고 작동합니다)
답변
아무것도 효과가없는 일부 (나 같은)의 경우 다음을 시도하십시오.
brew cleanup
brew link node
brew uninstall node
brew install node
그것이 누군가를 돕기를 바랍니다
답변
다음 일반 수정 사항은 모든 모듈에 적용됩니다. 예를 들어 request-promise
.
바꾸다
npm install request-promise --global
와
npm install request-promise --cli
일 ( 소스 에 대한도)과 globals
과inherits
또한 환경 변수를 설정하십시오.
NODE_PATH=%AppData%\npm\node_modules
답변
“optimist”모듈 오류가 발생하여 방금 “npm install”을 수행하여 문제를 해결했습니다. 그 오류를 지났다.
답변
$ vim /etc/profile.d/nodejs.sh
NODE_PATH=/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript
export NODE_PATH="$NODE_PATH"