node_modules에 로컬로 설치된 패키지에서 실행 파일을 사용하는 방법은 무엇입니까?


493

나는에서 모듈의 로컬 버전을 어떻게 사용합니까 node.js. 예를 들어 앱에서 커피 스크립트를 설치했습니다.

npm install coffee-script

이것은 그것을 설치 ./node_modules하고 coffee 명령은에 ./node_modules/.bin/coffee있습니다. 프로젝트의 기본 폴더에있을 때이 명령을 실행하는 방법이 있습니까? 번 bundle exec들러 와 비슷한 것을 찾고 있다고 생각 합니다. 기본적으로 프로젝트와 관련된 모든 사람이 사용해야하는 커피 스크립트 버전을 지정하고 싶습니다.

-g플래그를 추가하여 전 세계에 설치할 수 있으므로 커피가 어디서나 잘 작동하지만 프로젝트마다 다른 버전의 커피를 원한다면 어떻게해야합니까?


9
내가 읽은 많은 지시는 npm install niftycommand다음 과 같이 말합니다 niftycommand. 그러나 경로에 ./node_modules/.bin이 없으면 작동하지 않습니다.
Bennett McElwee

2
firstdoit.com/…에 대한 훌륭한 글이 있습니다. — 기본적으로 터미널에서 npm run build` 와 같은 섹션에 coffee명령 을 넣는 것이 좋습니다 . npm scripts"build": "coffee -co target/directory source/directoy", so you can run
Benny Neugebauer

@BennyNeugebauer 실제로, 그것은 내가 PATH를 엉망으로
만드는

12
사용 npx되어 npm 5.2.0 medium.com/@maybekatz/...
onmyway133

답변:


567

업데이트 : 정세 정은 아래 답변에서 지적했듯이 npm 5.2.0부터 사용할 수 있으므로 npx [command]더 편리합니다.

5.2.0 이전 버전의 경우 오래된 답변 :

퍼팅 문제

./node_modules/.bin

PATH는 현재 작업 디렉토리가 프로젝트 디렉토리 구조의 루트 (즉, 위치 node_modules) 인 경우에만 작동한다는 것입니다

작업 디렉토리가 무엇이든, 로컬로 설치된 바이너리 경로를 얻을 수 있습니다.

npm bin

coffee프로젝트 디렉토리 계층 구조에 관계 없이 로컬로 설치된 바이너리 를 실행하려면 이 bash 구성을 사용할 수 있습니다

PATH=$(npm bin):$PATH coffee

나는 이것을 npm-exec에 별명을 붙였다.

alias npm-exec='PATH=$(npm bin):$PATH'

이제는 할 수 있습니다

npm-exec coffee

내가 어디에 있든 커피의 올바른 사본을 실행

$ pwd
/Users/regular/project1

$ npm-exec which coffee
/Users/regular/project1/node_modules/.bin/coffee

$ cd lib/
$ npm-exec which coffee
/Users/regular/project1/node_modules/.bin/coffee

$ cd ~/project2
$ npm-exec which coffee
/Users/regular/project2/node_modules/.bin/coffee

17
한 걸음 더 나아가도됩니다alias coffee="npm-exec coffee"
정기

6
다른 프로젝트로 들어가면 출력이 변경됩니다. 프로젝트 내에서 CD를 넣을 때 변경되지 않습니다. npm binnode_modules 디렉토리를 찾기 위해 '조상 디렉토리'체인을 cwd로 검색합니다. 프로젝트의 package.json에 나열된 모듈의 바이너리를 구체적으로 사용하려는 경우 이는 정확히 원하는 동작입니다.
정기적 인

11
오 이런! 로컬 모듈을 작동 시키려면 실제로 이와 같은 작업을 수행해야합니까? 팀에게 설명하는 것은 불가능합니다! 조금 더 간단한 것이 없습니까?
Alexian

17
항상 로컬 바이너리를 먼저 검색하므로 npm 스크립트를 항상 사용할 수 있습니다 . 각 바이너리에 별명을 설정하거나 "build"와 같은 일반 이름을 사용할 수 있습니다.
Joe Zim

6
@ philosodad, 사실은 아닙니다. 는 PATH이 명령을 호출하기 전에 무엇에 돌아올 것이다. 명령을 실행하기 전에 동일한 행에 환경 변수를 설정하면 해당 명령의 환경에만 영향을줍니다.
정기적 인

410

좋은 예

$PATH더 이상 조작 할 필요가 없습니다 !

에서 npm@5.2.0 , NPM 과 함께 제공 npx할 수 있습니다 패키지는 로컬에서 명령을 실행 node_modules/.bin하거나 중앙 캐시를.

간단히 실행하십시오.

$ npx [options] <command>[@version] [command-arg]...

기본적으로, 또는 로컬 프로젝트 바이너리에 존재 npx하는지 확인 하고 실행합니다.<command>$PATH

호출 npx <command>할 때 <command>당신에없는 $PATH자동으로 당신을 위해 NPM 레지스트리에서 해당 이름의 패키지를 설치하고 호출합니다. 설치가 완료되면 설치된 패키지가 전 세계 어디에도 없으므로 장기적으로 오염에 대해 걱정할 필요가 없습니다. --no-install옵션 을 제공하여이 동작을 방지 할 수 있습니다 .

의 경우 다음 명령을 실행하여 패키지를 수동으로 npm < 5.2.0설치할 수 있습니다 npx.

$ npm install -g npx

1
타사 글로벌 npm 패키지를 설치하는 것을 좋아하지 npm않으며 package.json거의 동일한 기능을 제공합니다.
guneysus

"경로가 문자열이어야합니다. 정의되지 않은 메시지가 수신되었습니다"메시지가 표시되면 여기에 수정 사항이 있습니다. github.com/zkat/npx/issues/144#issuecomment-391031816
Valeriy Katkov

1
이 대답은 좋습니다. 그러나 나는 단지 npx절름발이 라고 말하고 싶다 . 이 있었어야 npm run하거나 npm exec또는 뭔가.
윌리엄 Entriken

@WilliamEntriken 어떤 이유로 npm run [my-local-package]Windows 장치에서 작동하는 것처럼 보이지만 Ubuntu에서 작동하지 않습니다.
시계 작업

97

npm bin명령을 사용 하여 프로젝트의 노드 모듈 / bin 디렉토리를 가져 오십시오.

$ $(npm bin)/<binary-name> [args]

예 :

$ $(npm bin)/bower install

4
나는이 간단하고 일반적인 솔루션을 좋아합니다. 별명을 불필요하게 만듭니다.
Matt Montag

필요 이상으로 우아하고 안전한 차세대 솔루션 인 것 같습니다export PATH="./node_modules/.bin:$PATH"
jontsai

1
명령이 inf3rno @ $(npm bin)/jasmine,하지 node $(npm bin)/jasmine(당신은 아마 그것을 알아 냈하지만, 다른 사람을 위해 명확하게).
jassa

5
나쁜 해결책은 아니지만 $가있는 표준 Windows 명령 줄에서 실행되지 않습니다. package.json scripts 섹션에 넣는 것이 더 호환성이 있기 때문에 더 나은 접근 방식입니다.
Timothy Gonzalez

77

사용하다 npm run[-script] <script name>

npm을 사용하여 bin 패키지를 로컬 ./node_modules디렉토리 에 설치 한 후 다음과 같이 package.json추가 하도록 수정 <script name>하십시오.

$ npm install --save learnyounode
$ edit packages.json
>>> in packages.json
...
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "learnyounode": "learnyounode"
},
...
$ npm run learnyounode

npm install에 --add-script 옵션이나 그 밖의 것이 있거나 scripts 블록에 추가하지 않고 npm run이 작동하면 좋을 것입니다.


5
프로젝트에서 여러 개발자를 처리 할 때이 접근법 이보다 균일하다는 것을 알았습니다. 로컬을 구성 할 필요가 없습니다 npm install. 그러면 개발자 종속성에 액세스 할 수 있습니다. 유일한 단점은 npm run eslint(또는 무엇이든) 필요한 것입니다. npm start개발자 서버를 시작하기 위해 입력 하기 만하면되므로 gulp를 실행하는 "start"라는 스크립트를 만들 수 있습니다 . 꽤 멋진 물건과 bash 선이 없으므로 Windows 친구는 여전히 당신을 좋아합니다. :)
jpoveda

1
별칭을 추가하는 경로에 $ (NPM 함)를 넣어하는 것은 영리이지만,이 지역 설정이없는 사람들을 위해 작동 할 것이라는 사실은 내 마음을 승리
Conrad.Dean

12
더 많은 투표가 필요합니다! 다음 --과 같이 스크립트에 인수를 전달하십시오 .npm run learnyounode -- --normal-switches --watch -d *.js
ptim

또한 이것이 최선의 해결책이라고 생각합니다. 여기에 상세한 설명이 있습니다 : lostechies.com/derickbailey/2012/04/24/…
adampasz

1
이것은 일반적으로 내가하는 일이지만 어떤 이유로 우분투 장치에서 npm run ts-node작동하지 않습니다. 난 그냥 npx로 ressort해야합니다.
시계 작업

42

사용하십시오 npm-run.

읽어보기에서 :

npm-run

node_modules에서 로컬 실행 파일 찾기 및 실행

npm 수명주기 스크립트에 사용 가능한 모든 실행 파일을 사용할 수 있습니다 npm-run.

용법

$ npm install mocha # mocha installed in ./node_modules
$ npm-run mocha test/* # uses locally installed mocha executable 

설치

$ npm install -g npm-run

8
더 이상, 위에서 언급 한 npx 참조 ... stackoverflow.com/a/45164863/3246805
tj

41

업데이트 : 언급 된 보안상의 이유로 최소한 최신 npm bin명령이 아닌이 방법을 더 이상 권장하지 않습니다 . 아래의 원래 답변 :

알다시피, 로컬로 설치된 바이너리는에 ./node_modules/.bin있습니다. 전역 적으로 사용 가능한 이진 파일이 아닌이 디렉토리에서 이진 파일을 항상 실행하려면 ./node_modules/.bin먼저 경로를 먼저 입력하는 것이 좋습니다 .

export PATH="./node_modules/.bin:$PATH"

당신이 당신이를 넣어 경우 ~/.profile, coffee항상 될 것입니다 ./node_modules/.bin/coffee가능한 경우 그렇지 않은 경우 /usr/local/bin/coffee(또는 당신이 무엇을 아래 노드 모듈을 설치하는 접두사).


1
아마도 최선의 해결책 일 것입니다. 또한 프로젝트에서 "watch"라는 bash 스크립트를 만들었습니다../node_modules/.bin/coffee --output lib/ --compile --bare --watch src
typeoneerror

72
위험, 윌 로빈슨! $ PATH에 상대 경로를 사용하면 행성의 크기에 보안 구멍이 생깁니다. 특히 첫 번째 항목으로 바로 놓으면 더욱 그렇습니다. 당신이있어 디렉토리가 모두 쓰기 권한이있는 경우 (어딘가에서 말을 /tmp, 어떤 프로세스 또는 사용자가 일반 명령의 악성 버전 (같은 넣어 세션을 가로 챌 수) ls, cp등)가. 암호 등을 캡처하는 '보이지 않는'하위 셸이 생성 될 수 있습니다.
ack

루트에서만 작동하며 다른 곳에서는 작동하지 않습니다. 는 alias npm-exec='PATH=$(npm bin):$PATH'야바위꾼입니다.
oligofren

1
첫 번째로 넣지 않고 PATH마지막으로 ( $(npm bin)양식을 사용하여 ) 넣는 것이 얼마나 나쁜 가요? 따라서 기존 내용을 덮어 쓸 수 없으므로 var에 npm bin관계없이 이미 디렉토리 의 실행 파일을 신뢰했을 것입니다 PATH. 위협 모델은 a) 악의적 인 사용자가 파일 시스템에 액세스 할 수 있고, b) 해당 시스템 도구에 가까운 이름을 가진 실행 파일을 추가하고, c) 잘못 입력 한 것입니까? npm설치된 프로그램을 사용할 때 이미 외부 실행 파일을 신뢰하고 있다는 것을 감안할 때 이것을 악화시키는 시나리오를 이해하려고 합니다.
osdiab

별명을 사용하여 쉘 트릭을 수행 할 수 있으며 수동으로 경로를 지정할 수 있지만이 "작동"하지만 그리 이상적이지는 않습니다.
killscreen

22

PATH 솔루션에는 $ (npm bin)이 .profile / .bashrc / etc에 배치되면 한 번 평가되고 경로가 처음 평가 된 디렉토리로 영원히 설정되는 문제가 있습니다. 대신 현재 경로를 수정하면 스크립트를 실행할 때마다 경로가 커집니다.

이러한 문제를 해결하기 위해 함수를 작성하여 사용했습니다. 환경을 수정하지 않고 사용하기 쉽습니다.

function npm-exec {
   $(npm bin)/$@  
}

그러면 환경을 변경하지 않고도 다음과 같이 사용할 수 있습니다.

npm-exec r.js <args>

2
나는 이것을 좋아한다! 난 그저 내라는 이름의 함수n
jontsai

대단해! 공유해 주셔서 감사합니다. 아래에 생선 껍질 버전을 추가했습니다.
LeOn-Han Li

22

npm을 유지하려면 npx 가 필요한 것을 수행해야합니다.


면사로 전환 (페이스 북으로 npm 교체)이 옵션 인 경우 다음으로 전화 할 수 있습니다.

 yarn yourCmd

package.json 내부의 스크립트가 우선권을 가지며, 없으면 스크립트 내부를 찾습니다 ./node_modules/.bin/.

또한 실행 한 결과를 출력합니다.

$ yarn tsc
yarn tsc v0.27.5
$ "/home/philipp/rate-pipeline/node_modules/.bin/tsc"

따라서의 각 명령에 대해 스크립트를 설정할 필요가 없습니다 package.json.


.scripts내부에 스크립트가 정의되어있는 경우 package.json:

"tsc": "tsc" // each command defined in the scripts will be executed from `./node_modules/.bin/` first

yarn tscyarn run tsc또는 npm run tsc다음 과 같습니다 .

 yarn tsc
 yarn tsc v0.27.5
 $ tsc

14

업데이트 : 최근 npm을 사용하는 경우 (버전> 5.2)

당신이 사용할 수있는:

npx <command>

npx.bin당신의 디렉토리 에서 명령을 찾습니다node_modules

오래된 답변 :

Windows의 경우

다음 파일을 파일에 저장하고 파일에 npm-exec.bat추가하십시오.%PATH%

@echo off
set cmd="npm bin"
FOR /F "tokens=*" %%i IN (' %cmd% ') DO SET modules=%%i
"%modules%"\%*

용법

그런 다음처럼 사용할 수 있습니다 npm-exec <command> <arg0> <arg1> ...

예를 들어

wdio로컬 node_modules 디렉토리에 설치된를 실행하려면 다음을 수행하십시오 .

npm-exec wdio wdio.conf.js

즉, 실행됩니다 .\node_modules\.bin\wdio wdio.conf.js


둘 이상의 인수를 전달하는 동안 작동하지 않습니다. 예 : npm-exec gulp <some_task>
OK999

@ OK9999 약간의 수정으로 인수를 전달할 수 있다고 확신합니다 (여기에서 전달할 때 ""로 인용). 내가 제안하는 것은 bin에서 gulp 파일을 프로젝트 루트로 복사 붙여 넣는 것입니다 (파일의 일부 수정이 필요하지만 새 코드 등을 작성하지 않고도 작동합니다)
Dheeraj Bhaskar

예, 나는 그렇게했습니다. node_modules 폴더는 gulpfile이있는 폴더에 있어야합니다
OK999

6

쉘 별명이나 다른 패키지에 의존하지 않는 것을 선호합니다.

scripts섹션에 간단한 줄을 추가하면 다음 package.json과 같은 로컬 npm 명령을 실행할 수 있습니다

npm run webpack

package.json

{
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "webpack": "webpack"
  },
  "devDependencies": {
    "webpack": "^4.1.1",
    "webpack-cli": "^2.0.11"
  }
}

5

PATH 변수가 현재 작업 디렉토리를 기반으로 올바르게 업데이트되도록하려면이를 .bashrc동등한 끝에 추가하십시오 (또는 정의하는 항목 뒤에 PATH).

__OLD_PATH=$PATH
function updatePATHForNPM() {
  export PATH=$(npm bin):$__OLD_PATH
}

function node-mode() {
  PROMPT_COMMAND=updatePATHForNPM
}

function node-mode-off() {
  unset PROMPT_COMMAND
  PATH=$__OLD_PATH
}

# Uncomment to enable node-mode by default:
# node-mode

이것은 bash 프롬프트가 렌더링 될 때마다 (프로젝트의 크기에 따라) 약간의 지연을 일으킬 수 있으므로 기본적으로 비활성화되어 있습니다.

node-modenode-mode-off을 각각 실행하여 터미널 내에서 활성화 및 비활성화 할 수 있습니다 .


4

나는 항상 package.json 파일에 스크립트를 생성하고 npm run script-name을 실행하는이 문제를 해결하기 위해 @guneysus와 동일한 접근 방식을 사용했습니다.

그러나 최근 몇 개월 동안 나는 npx를 사용 하고 있으며 그것을 좋아합니다.

예를 들어 Angular 프로젝트를 다운로드했는데 Angular CLI를 전체적으로 설치하고 싶지 않았습니다. 따라서 npx가 설치된 상태에서 다음과 같이 전역 각도 cli 명령 (설치 한 경우)을 사용하는 대신 :

ng serve

콘솔 에서이 작업을 수행 할 수 있습니다.

npx ng serve

여기 NPX에 대해 쓴 기사 가 있으며 더 자세히 설명되어 있습니다.


2

zxc 는 nodejs의 "번들 exec"와 같습니다. 다음을 사용하는 것과 비슷합니다 PATH=$(npm bin):$PATH.

$ npm install -g zxc
$ npm install gulp
$ zxc which gulp
/home/nathan/code/project1/node_modules/.bin/gulp

2

@regular와 동일하지만 생선 껍질 맛

if not contains (npm bin) $PATH
    set PATH (npm bin) $PATH
end

1

direnv를 사용하고 작업 폴더에서만 $ PATH 변수를 변경할 수도 있습니다.

$ cat .envrc
> export PATH=$(npm bin):$PATH

1

에이 스크립트를 추가하십시오 .bashrc. 그런 다음 전화를 걸 coffee거나 로컬로 연결할 수 있습니다. 랩톱에는 편리하지만 서버에서는 사용하지 마십시오.

DEFAULT_PATH=$PATH;

add_local_node_modules_to_path(){
  NODE_MODULES='./node_modules/.bin';
  if [ -d $NODE_MODULES ]; then
    PATH=$DEFAULT_PATH:$NODE_MODULES;
  else
    PATH=$DEFAULT_PATH;
  fi
}

cd () {
  builtin cd "$@";
  add_local_node_modules_to_path;
}

add_local_node_modules_to_path;

참고 :이 스크립트는 cd명령의 별칭을 만들고 호출 할 cd때 마다를 확인 node_modules/.bin하고 추가합니다 $PATH.

참고 2 : 세 번째 줄을로 변경할 수 있습니다 NODE_MODULES=$(npm bin);. 그러나 cd명령이 너무 느려질 것입니다.


1
$(npm bin)하드 코딩 대신 사용하십시오 ./node_modules/.bin.
bfontaine

흠, $(npm bin)cd명령 에 사용하기에는 너무 느린 것 같습니다 . 코드를 복원하고 메모를 추가했습니다.
카와무라 쓰 토무

1

Windows의 경우 다음을 사용하십시오.

/* cmd into "node_modules" folder */
"%CD%\.bin\grunt" --version

0

저도 같은 문제가 발생하여 나는 특히 별칭을 사용하는 것과하지 않는 (로 일반 '제안들), 그리고 당신이 그들처럼하지 않으면 너무 여기에 내가 사용, 먼저 작은 실행 bash는 스크립트를 작성해야한다는 또 다른 해결 방법입니다 setenv.sh 라고 말합니다 .

#!/bin/sh

# Add your local node_modules bin to the path
export PATH="$(npm bin):$PATH"

# execute the rest of the command
exec "$@"

그런 다음 /bin이 명령을 사용 하여 로컬에서 실행 파일을 사용할 수 있습니다 .

./setenv.sh <command>
./setenv.sh 6to5-node server.js
./setenv.sh grunt

scriptspackage.json에서 사용하는 경우 :

...,
scripts: {
    'start': './setenv.sh <command>'
}

2
이 setenv 스크립트는 package.json 스크립트에 필요하지 않습니다. npm run {scripts}를 실행할 때 npm은 이미 로컬 node_modules / .bin 디렉토리 앞에 경로를 추가합니다.
jasonkarns

0

이것이 안전하지 않은 / 나쁜 아이디어인지 알고 싶지만 조금 생각한 후에는 여기에서 문제가 발생하지 않습니다.

Linus의 안전하지 않은 솔루션을 수정 npm bin하여 디렉토리 를 추가 하고 디렉토리를 찾는 데 사용 하고 부모가 (속도를 위해) 존재 npm bin하는 경우 에만 스크립트를 호출 하면 다음 package.jsonzsh같습니다.

find-up () {
  path=$(pwd)
  while [[ "$path" != "" && ! -e "$path/$1" ]]; do
    path=${path%/*}
  done
  echo "$path"
}

precmd() {
  if [ "$(find-up package.json)" != "" ]; then
    new_bin=$(npm bin)
    if [ "$NODE_MODULES_PATH" != "$new_bin" ]; then
      export PATH=${PATH%:$NODE_MODULES_PATH}:$new_bin
      export NODE_MODULES_PATH=$new_bin
    fi
  else
    if [ "$NODE_MODULES_PATH" != "" ]; then
      export PATH=${PATH%:$NODE_MODULES_PATH}
      export NODE_MODULES_PATH=""
    fi
  fi
}

의 경우 후크 bash를 사용하는 대신 변수를 precmd사용할 수 있습니다 $PROMPT_COMMAND(테스트하지는 않았지만 아이디어는 얻었습니다).

__add-node-to-path() {
  if [ "$(find-up package.json)" != "" ]; then
    new_bin=$(npm bin)
    if [ "$NODE_MODULES_PATH" != "$new_bin" ]; then
      export PATH=${PATH%:$NODE_MODULES_PATH}:$new_bin
      export NODE_MODULES_PATH=$new_bin
    fi
  else
    if [ "$NODE_MODULES_PATH" != "" ]; then
      export PATH=${PATH%:$NODE_MODULES_PATH}
      export NODE_MODULES_PATH=""
    fi
  fi   
}

export PROMPT_COMMAND="__add-node-to-path"

npm bin마지막에 추가하면 $PATH사용자가 기대하는 것을 실행할 수 없습니다. 기본적으로 다른 실행 파일이지만 다른 버전의 전역 적으로 설치된 패키지 일 것입니다!
LoganMzz

0

나는 Windows사용자이며 이것이 나를 위해 일한 것입니다.

// First set some variable - i.e. replace is with "xo"
D:\project\root> set xo="./node_modules/.bin/"

// Next, work with it
D:\project\root> %xo%/bower install

행운을 빕니다.


0

보안상의 이유로 사용 fish shell하고 있고 추가하고 싶지 않은 경우 $path. 로컬 노드 실행 파일을 실행하기 위해 아래 기능을 추가 할 수 있습니다.

### run executables in node_module/.bin directory
function n 
  set -l npmbin (npm bin)   
  set -l argvCount (count $argv)
  switch $argvCount
    case 0
      echo please specify the local node executable as 1st argument
    case 1
      # for one argument, we can eval directly 
      eval $npmbin/$argv
    case '*'
      set --local executable $argv[1]
      # for 2 or more arguments we cannot append directly after the $npmbin/ since the fish will apply each array element after the the start string: $npmbin/arg1 $npmbin/arg2... 
      # This is just how fish interoperate array. 
      set --erase argv[1]
      eval $npmbin/$executable $argv 
  end
end

이제 다음과 같은 것을 실행할 수 있습니다.

n coffee

다음과 같은 인수가 더 있습니다 :

n browser-sync --version

당신이 경우 참고 bash사용자, 다음 Bob9630 답변 @ 배쉬의 활용에 의해 이동하는 방법 $@에 사용할 수없는 어느 fishshell.


-9

각 프로젝트에 필요한 특정 버전과 함께 package.json에 커피 스크립트를 포함하십시오 (일반적으로 다음과 같이).

"dependencies":{
  "coffee-script": ">= 1.2.0"

그런 다음 npm install을 실행하여 각 프로젝트에 종속성을 설치하십시오. 각 프로젝트에서 로컬로 액세스 할 수있는 지정된 버전의 커피 스크립트를 설치합니다.


그래, 내 질문에 언급 한대로 얻었습니다. ./node_modules/.bin/coffee 이외의 프로젝트에서 구체적으로 어떻게 호출합니까?
typeoneerror

프로젝트의 기본 폴더에서 package.json으로 npm install을 실행 한 경우이 폴더에 ./node_modules/.bin/coffee 폴더가 있어야합니다. ./node_modules/coffee-script/bin/coffee를 사용하면 로컬 버전의 커피가 실행되고 커피 만 실행하면 전역 설치가 실행됩니다. 이 프로젝트 폴더 내의 다른 경로에 다른 버전의 커피가 설치되어 있으면 ./path/to/this/installation/coffee를 사용하여 커피에 액세스 할 수 있습니다.
almypal

이것은 나를 위해 작동하지 않았습니다. "svgo"를 사용하려고하는데 전세계에 설치했을 때만 작동합니다. package.json npm install svgonpm install함께 시도 했습니다 . 두 방법 모두 "성공적으로"설치되었지만 "svgo"명령을 계속 사용할 수 없습니다.
Ryan Wheale

1
그런트는 이것을 영리하게 사용하고 IMHO는 다른 패키지도 마찬가지입니다. 먼저 grunt-cli패키지를 전체적으로 설치 한 다음 프로젝트 디렉토리에 grunt패키지 의 수정 된 버전을 설치 한 다음을 실행할 grunt때이 로컬 버전이 사용됩니다.
ack
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.