npm 可以在專案package.json裡面自定義指令碼命令
package.json檔案:
}
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')if
(target ===
'dev')if
(target ===
'postdev'
)
四個可以簡寫的指令碼執行命令npm start ==
=npm run start
npm stop ==
=npm run stop
npmtest===
npm run test
npm restart ==
=npm run stop &&
npm run restart &&
npm run start
使用package.json內部變數
通過npm_package_
字首,npm指令碼可以拿到npm的內部變數
package.json:
test.js:
console.
log(process.env.npm_package_name)
//aaaa
深入理解brew link命令
brew是mac機上面程式猿非常常用的軟體包安裝方式,其中有兩組命令是需要大家知曉的。分別是 第一組 brew install和brew uninstall。第二組,brew link和brew unlink。不過關於第一組brew install命令,比較常用,所以大家可能會比較熟悉。後面的這組b...
深入理解C語言 深入理解指標
關於指標,其是c語言的重點,c語言學的好壞,其實就是指標學的好壞。其實指標並不複雜,學習指標,要正確的理解指標。指標也是一種變數,占有記憶體空間,用來儲存記憶體位址 指標就是告訴編譯器,開闢4個位元組的儲存空間 32位系統 無論是幾級指標都是一樣的 p操作記憶體 在指標宣告時,號表示所宣告的變數為指...
mysql 索引深入理解 深入理解MySql的索引
為什麼索引能提高查詢速度 先從 mysql的基本儲存結構說起 mysql的基本儲存結構是頁 記錄都存在頁裡邊 各個資料頁可以組成乙個雙向鍊錶每個資料頁中的記錄又可以組成乙個單向鍊錶 每個資料頁都會為儲存在它裡邊兒的記錄生成乙個頁目錄,在通過主鍵查詢某條記錄的時候可以在頁目錄中使用二分法快速定位到對應...