2017-12-09 11 views
0

여러 Node.js를 패키지 (단지 예로서 Jasmine를 사용하여) 자신의 출발점으로 다음과 같은 두 가지 단계가 있습니다init 명령은 무엇을합니까?

npm install --save-dev jasmine 
./node_modules/.bin/jasmine init 

첫 번째 문은 간단하지만 내 인생 내가 알아낼 수없는 무엇 두 번째 성명서는 본부에서합니다. 재스민 문서는 단지 그것을 초기화한다고 말합니다 (저는 더 기술적 인 것을 찾고 있습니다).

./node_modules/.bin/jasmine은 다음과 같습니다

  • 에서 mkdir을 TestProj :

    #!/bin/sh 
    basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") 
    
    case `uname` in 
        *CYGWIN*) basedir=`cygpath -w "$basedir"`;; 
    esac 
    
    if [ -x "$basedir/node" ]; then 
        "$basedir/node" "$basedir/../jasmine/bin/jasmine.js" "[email protected]" 
        ret=$? 
    else 
        node "$basedir/../jasmine/bin/jasmine.js" "[email protected]" 
        ret=$? 
    fi 
    exit $ret 
    

    경우 도움이, 나는 복제 및 로컬 패키지를 설치하기 위해 이런 짓을 작성합니다 새 프로젝트 폴더

  • 코드 testProj --add : 폴더를 작업 영역에 추가합니다.
  • cd testProj
  • ,
  • NPM 초기화는 : package.json을 작성
  • NPM은 [가 --save-DEV] 설치 :이 구체적으로 무엇을 하는가 :
  • ./node_modules/.bin/ 초기화 종속성을 설치?
    • 짧은 : NPX 초기화

초기화 깊이 이해할 수있을 것이라고 설명 모든 포인터/문서.

편집 :

그냥 내가 (테스트 및 재스민 문서에서 지우기) 초기화가 무엇 , 나는 단지 그것을하지 방법을 이해하지 알고, 명확하게. 기본적으로 CLI에서 CLI를 실행할 때 스크립트 이름 뒤에 init이 필요한 이유와 init 코드가있는 곳을 찾으려고합니다.

+1

쉘 스크립트를 사용하여 노드를 통해'jasmine.js' 파일을 호출하는 것처럼 보입니다. 개인적으로 노드 패키지의 단계로 보지 못했습니다. –

+1

제공 한 코드는 명령 줄 인수로 아무 것도하지 않고 jamine.js가 호출 될 때 전달합니다. – Quentin

+1

아마 basedir에서 일부 경로를 정상화하지만 아마 대부분 무해한 imho –

답변

1

나는 결국이 문제를 해결할 수있었습니다. 앞으로이 문제가 생기면 ./node_modules/.bin/jasmine init에 대한 설명입니다.

  1. ./node_modules/.bin/jasmine init 명령 행
  2. 에서 실행이 ./node_modules/.bin/에서 jasmine 유닉스 스크립트 (init 인수가 아직 사용되지 않음)
  3. 스크립트는 jasmine.js (./node_modules/jasmine/bin/jasmine.js) 경로를 해결을 실행하고 그것을
  4. 를 실행 Jasmine.js에는 다음 코드가 포함됩니다. var Command = require('../lib/command.js')
  5. Jasmine.jsCommand의 새 인스턴스가 생성됩니다. 오브젝트 (command) 및 실행 : command.run(jasmine, process.argv.slice(2));
    • process.argv 명령 라인에서 애플리케이션을 시작할 때의 모든 주어진 인수의 배열이다. 명령을 상기하며, 하나는 slice(2) 마지막으로 맨 위에
    • 에서 initJasmineinit를 매핑하는 데하여 command.js 내부의 run 기능은 initJasmine 시작 init
  6. initJasmine 디렉토리 spec의 모든 내용을 만들어 해당된다는보고

앞으로 다른 사람을 돕는 희망.

0

jasmine init은 spec 디렉토리와 json 구성을 작성하여 Jasmine의 기본 폴더 구조를 초기화합니다. 자세한 내용은 여기를 참조하십시오. https://github.com/jasmine/jasmine-npm

+0

안녕 Alexey. 나는 그 문서도 찾았지만 init이 실제로 무엇인지에 대해서는 자세히 설명하지 않았다. 처음에는 bin/Jasmine 파일 내부의 속성 또는 기능이라고 생각했습니다. 그렇지 않았습니다. 그렇다면 특별한 유닉스 키워드라고 생각했습니다. 저는 다양한 유닉스 스크립트 튜토리얼을 살펴 보았고 리눅스 부팅시 사용되는 스크립트 인 init.d에 대한 참조만을 발견했습니다. 추가적인 통찰력은 깊이 감사 할 것입니다. – Magnus

+0

'init'은 단지'spec/support/jasmine.json' 파일을 만들고 예제의 기본 설정을 저장합니다. 그게 다야. BTW,'node_modules/.bin/jasmine'이 다르게 보입니다 –

+0

죄송합니다, 명확히하겠습니다. 나는 init이하는 일을 안다, 나는 단지 그것을 어떻게하는지 이해하지 못한다. 이러한 작업을 수행하는 "init"코드는 어디에 있습니까? CLI에서 스크립트를 실행하는 데 스크립트 이름 다음에 코드 (플래그 및 인수 제외)가 필요하지 않으므로 재스민 Unix 스크립트를 실행하는 것이 아닙니다. 파일과 관련하여 Jasmine.js를 보지 않으시겠습니까? 내가 게시 한 것이 Jasmine.js가 아니라 node_module/bin 폴더 안에있는 Unix 스크립트입니다. – Magnus