[javascript] javascript 파일을 실행하는 package.json 파일에 사용자 정의 스크립트를 추가하려면 어떻게합니까?

실행할 script1프로젝트 디렉토리에서 명령을 실행할 수 있기를 원합니다 node script1.js.

script1.js같은 디렉토리에있는 파일입니다. 이 명령은 프로젝트 디렉토리와 관련이 있어야합니다. 즉, 다른 사람에게 프로젝트 폴더를 보내면 동일한 명령을 실행할 수 있습니다.

지금까지 추가를 시도했습니다.

"scripts": {
    "script1": "node script1.js"
}

내 package.json 파일에 있지만 실행하려고 script1하면 다음과 같은 출력이 나타납니다.

zsh: command not found: script1

위에서 언급 한 스크립트를 프로젝트 폴더에 추가하는 데 필요한 단계를 아는 사람이 있습니까?

* 참고 :이 명령은 bash 프로파일에 추가 할 수 없습니다 (시스템 별 명령 일 수 없음)

설명이 필요하면 알려주십시오.



답변

맞춤 스크립트

npm run-script <custom_script_name>

또는

npm run <custom_script_name>

귀하의 예에서는 npm run-script script1또는 을 실행하려고합니다 npm run script1.

참조 https://docs.npmjs.com/cli/run-script를

수명주기 스크립트

또한 노드를 사용하면 after after npm installrun 과 같은 특정 수명주기 이벤트에 대해 사용자 정의 스크립트를 실행할 수 있습니다 . 이것들은 여기 에서 찾을 수 있습니다 .

예를 들면 다음과 같습니다.

"scripts": {
    "postinstall": "electron-rebuild",
},

이것은 명령 electron-rebuild후에 npm install실행됩니다.


답변

다음을 만들었고 시스템에서 작동하고 있습니다. 이것을 시도하십시오 :

package.json :

{
  "name": "test app",
  "version": "1.0.0",
  "scripts": {
    "start": "node script1.js"
  }
}

script1.js :

console.log('testing')

명령 행에서 다음 명령을 실행하십시오.

npm start

추가 사용 사례

내 package.json 파일에는 일반적으로 다음 스크립트가 포함되어있어 내 파일에서 typescript, sass 컴파일 및 서버 실행을 볼 수 있습니다.

 "scripts": {
    "start": "concurrently \"sass --watch ./style/sass:./style/css\" \"npm run tsc:w\" \"npm run lite\" ",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "lite": "lite-server",
    "typings": "typings",
    "postinstall": "typings install"
  }


답변

단계는 다음과 같습니다.

  1. package.json에서 다음을 추가하십시오.

    "bin":{
        "script1": "bin/script1.js"
    }
  2. 만들기 bin프로젝트 디렉토리에 폴더와 파일을 추가 runScript1.js코드와 함께 :

    #! /usr/bin/env node
    var shell = require("shelljs");
    shell.exec("node step1script.js");
  3. npm install shelljs터미널에서 실행

  4. npm link터미널에서 실행

  5. 터미널에서 이제 실행할 수 script1있습니다.node script1.js

참조 : http://blog.npmjs.org/post/118810260230/building-a-simple-command-line-tool-with-npm


답변

스크립트에서 단일 명령으로 2 개의 명령을 실행하려고합니다.

"scripts":{
  "start":"any command",
  "singleCommandToRunTwoCommand":"some command here && npm start"
}

이제 터미널로 가서 거기서 실행하십시오 npm run singleCommandToRunTwoCommand.


답변

예:

  "scripts": {
    "ng": "ng",
    "start": "ng serve",
    "build": "ng build --prod",
    "build_c": "ng build --prod && del \"../../server/front-end/*.*\" /s /q & xcopy /s dist \"../../server/front-end\"",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },

보시다시피, “build_c”스크립트는 앵귤러 애플리케이션을 빌드하고 디렉토리에서 모든 오래된 파일을 삭제 한 다음 결과 빌드 파일을 복사합니다.


답변