npm腳本命令npm run script的使用


npm 可以在項目package.json里面自定義腳本命令

package.json文件

{
  "script":{
    "dev": "webpack -w"
  }
}

package.json文件中的字段script的每一個屬性都是一個自定義的腳本命令。

在命令行中可以通過執行npm run dev來執行這段腳本。

執行原理

使用npm run script執行腳本的時候都會創建一個shell,然后在shell中執行指定的腳本。

這個shell會將當前項目的可執行依賴目錄(即node_modules/.bin)添加到環境變量path中,當執行之后之后再恢復原樣。就是說腳本命令中的依賴名會直接找到node_modules/.bin下面的對應腳本,而不需要加上路徑。

執行順序

 

一個npm腳本可以執行多個任務,這些任務之間可以指定不同的執行順序。

'&' 並行執行順序,同時執行
"dev":"node test.js & webpack"

'&&'繼發順序,執行前面之后才可以執行后面
"dev":"node test.js && webpack"

順序鈎子

npm腳本自帶兩個順序鈎子,'pre' 和 'post'

"predev":"node test_one.js",
"dev":"node test_two.js",
"postdev":"node test_three.js"

當執行 npm run dev 的時候默認就會執行

npm run predev && npm run dev && npm run postdev

獲取當前正在運行的腳本名稱

npm 提供一個npm_lifecycle_event變量,返回當前正在運行的腳本名稱,可以配合順序鈎子使用

npm run dev


const target = process.env.npm_lifecycle_event;

if(target === 'predev'){
  console.log('the process is predev')  
}
if(target === 'dev'){
  console.log('the process is dev')
}
if(target === 'postdev'){
  console.log('this process is postdev')
}

 

四個可以簡寫的腳本執行命令

npm start === npm run start
npm stop === npm run stop
npm test === npm run test
npm restart === npm run stop && npm run restart && npm run start

使用package.json內部變量

通過npm_package_前綴,npm腳本可以拿到npm的內部變量

package.json:
{
  "name":"zzpzds",
  "script":"node test.js"
}

test.js:
console.log(process.env.npm_package_name) //zzpzds

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM