你對npm init的瞭解可能還不夠深入吧?
theme: vuepress highlight: tomorrow-night
攜手創作,共同成長!這是我參與「掘金日新計劃 · 8 月更文挑戰」的第10天,點選檢視活動詳情。
1、前言
之前寫過一篇關於如何釋出一個npm包到npmjs,有興趣的可以看一下這篇文章 https://juejin.cn/post/7127824563072663565。
主要程式碼如下所示
javascript
// package.json中的bin路徑指令碼
"bin": {
"create-ak-vue": "./bin/vue.js",
"create-ak-vite": "./bin/vite.js"
},
然後bin資料夾下兩個檔案的程式碼分別為
```javascript // vite.js
! /usr/bin/env node
console.log('vite.1js') console.log('vite.2js')
// vue.js
! /usr/bin/env node
console.log('vue.js') console.log('vue.js') ``` 大致的程式碼就是這樣了,現在假設一下,我們的程式碼已經發布出去了,那麼開始安裝
```javascript // 全域性安裝aehyok-cli npm i aehyok-cli -g
// 然後執行 create-ak-vue create-ak-vite
// 或者下面兩個 npm create ak-vue npm create ak-vite
// 再或者下面兩個 npm init ak-vue npm init ak-vite ``` 執行效果如下
可以發現這三種情況實現了同樣的功能
2、npm init、npm create
印象裡面大家可能對它的記憶可能都停留在,npm init
之後是快速的初始化package.json
,並通過互動式的命令列讓我們輸入需要的欄位值,當然如果想直接使用預設值,也可以使用npm init -y
快速生成一個簡單預設的package.json。
create-app-react
建立專案命令,官網連結可以直接檢視 https://create-react-app.dev/docs/getting-started
```javascript //官網的三種命令 npx create-react-app my-app npm init react-app my-app yarn create react-app my-app
//我又發現npm create也是可以的 npm create react-app my-app ```
上述這些命令最終效果都是可以執行建立專案的
同樣的vite
建立專案的命令
```javascript
//官網的命令
npm create vite@latest
yarn create vite
pnpm create vite
// 指定具體模板的 // npm 6.x npm create vite@latest my-vue-app --template vue //npm 7+, extra double-dash is needed: npm create vite@latest my-vue-app -- --template vue
yarn create vite my-vue-app --template vue
pnpm create vite my-vue-app --template vue
```
可以發現vite
官網沒有使用npx
命令,不過我在我自己電腦上嘗試了另外幾個命令確實也是可以的
javascript
npx create-vite my-app
npm init vite my-app
通過上面的對比可以一個小問題,yarn create
去官網查了是存在這個指令的,官網地址可看 https://classic.yarnpkg.com/en/docs/cli/create#search
而對於npm create
這個命令在npm官網是看不到的,但是在一篇部落格中發現了更新日誌
意思就是說npm create xxx
和npm init xxx
以及yarn create xxx
效果是一致的。那麼我們來本文的命令列
```javascript // 我們是通過npm安裝的,並且包名裡是包含create的 npm i create-vite-pretty-lint
// 那麼以下幾種方式都可以使用的 npm init vite-pretty-lint npm create vite-pretty-lint yarn create vite-pretty-lint npx create-vite-pretty-lint ```
3、npx
假如我們只在專案中安裝了vite
,那麼node_modules
中.bin
資料夾下是會存在vite
指令的
如果我們想在該專案下執行該命令第一種方式便是
第二種方式就是直接在package.json的scripts屬性下
關於npx的詳細說明可以看一下阮一峰大佬的精彩分享 http://www.ruanyifeng.com/blog/2019/02/npx.html
4、總結
其實前言中的執行命令還可以新增一個
javascript
npx create-ak-vue
所以最後其實可以有四種方式去執行package.json中bin命令,總共有四種執行方式,真的太可怕了。
- GPT-4凌晨已釋出趕緊申請,前端小白用最近用剛學的golang對接了GPT-3.5的6個介面
- 欠薪6個月:大齡,掘金,疫情,酒店,轉型,前端滿兩年,搞公司後端兩個月,年後離職還是繼續等待?
- 你對npm init的瞭解可能還不夠深入吧?
- git push時如果遇到問題,來試試這幾種方式
- 前端可以瞭解一下:最基礎的八個linux命令
- apifox超越了postman,給前端帶來了哪些便利呢?
- 天天提交程式碼,git commit 提交時能規範一下嗎?
- 晚飯都沒吃,我一前端幫後端做了一點SQL優化,才避免了通宵
- git 分支合併程式碼的四種方式
- 日常工作中對我很重要的那些git命令
- JavaScript基礎系列(6):`this`這六種使用方式,你都理解了嗎?
- 手寫50行程式碼實現vue中this是如何訪問data和methods,並除錯vue原始碼詳細解剖原理
- 若川說"可能是歷史上最簡單的一期omit.js"原始碼共讀,但我學到了這些
- JavaScript基礎系列第三篇:呼叫棧在JavaScript引擎中扮演了一個什麼樣的角色
- V8系列第二篇:從執行上下文的角度看JavaScript到底是怎麼執行的
- 如何為前端專案一鍵自動新增eslint和prettier的支援
- 88年大齡前端:轉行前端不到兩年|2022年年中總結
- 騰訊開源元件庫tdesign-vue:新增元件時是如何初始化的
- 跟尤雨溪對話:我從vuejs/core釋出中學到了什麼?
- 如何獨立封裝vue3選項式Api(重點)和組合式Api的生命週期鉤子函式