얼마 전에 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"