npm的scripts的使用

Posted 一顿操作猛如虎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了npm的scripts的使用相关的知识,希望对你有一定的参考价值。

一个命令相当于执行两个命令


  "name": "npm-test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": 
    // 直接就是在npm start,可以就是先npm i,然后在npm run serve
    "start": "npm run install-missing-dependencies && npm run serve",
    "install-missing-dependencies": "npm i",
    "serve": "http-server"
  ,
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": 
    "http-server": "^14.1.0"
  

  1. 关键代码:
// 直接就是在npm start,可以就是先npm i,然后在npm run serve
    "start": "npm run install-missing-dependencies && npm run serve",
    "install-missing-dependencies": "npm i",

npm(script)脚本

什么是npm脚本?

npm允许在package.json文件里面,使用scripts字段定义脚本命令。

简写指令

        npm start   -> npm run start
        npm stop  -> npm run stop
        npm text  -> npm run test
        npm restart -> npm run stop & npm run start
{
scripts:{
   "build":'node build.js'
 }
}

上面代码是package.json文件的一个片段,里面的scripts字段是一个对象。它的每一个属性,对应一段脚本。比如,build命令对应的脚本是node build.js。

命令行下使用 npm run 命令,就可以执行这段脚本。

$ npm run build
  等同于
$ node build.js

npm脚本的优点

1.可以利用npm提供许多辅助功能。
2.项目的相关脚本,可以集中在一个地方。
3.不同项目的脚本命令,只要功能相同,就可以有同样的对外接口。用户不需要知道怎么测试你的项目,只要运行npm run test即可。

npm的原理

npm 脚本的原理非常简单。每当执行npm run,就会自动新建一个 Shell,在这个 Shell 里面执行指定的脚本命令。因此,只要是 Shell(一般是 Bash)可以运行的命令,就可以写在 npm 脚本里面。

比较特别的是,npm run新建的这个 Shell,会将当前目录的node_modules/.bin子目录加入PATH变量,执行结束后,再将PATH变量恢复原样。

这意味着,当前目录的node_modules/.bin子目录里面的所有脚本,都可以直接用脚本名调用,而不必加上路径。比如,当前项目的依赖里面有 Mocha,只要直接写mocha test就可以了。

例如

"test": "mocha test"

而不用写成下面这样。

"test": "./node_modules/.bin/mocha test"

npm通配符

由于 npm 脚本就是 Shell 脚本,因为可以使用 Shell 通配符。

"lint": "jshint *.js"
"lint": "jshint **/*.js"

上面代码中,*表示任意文件名,**表示任意一层子目录。

npm传参

向 npm 脚本传入参数,要使用--标明。

"lint": "jshint **.js"

向上面的npm run lint命令传入参数,必须写成下面这样。

$ npm run lint --  --reporter checkstyle > checkstyle.xml

以上是关于npm的scripts的使用的主要内容,如果未能解决你的问题,请参考以下文章

npm scripts 使用指南

npm Scripts使用教程译

npm的scripts的使用

npm(script)脚本

npm package.json 属性详解

将 node-sass 监视选项与 npm run-script 一起使用