javascript - babel如何正確安裝使用?
問題描述
大家好,我又來了距離上次詢問babel安裝已經(jīng)有一段時間了,惡補了一下有關(guān)于npm的知識,看阮一峰老師的教程終于不是那么懵逼了嘿嘿距離上一次提問還是有進步的/q/10...首先我創(chuàng)建了一個Babel文件夾
1 創(chuàng)建一個.babelrc文件2 npm init 一直點回車創(chuàng)建了一個package.json文件3 安裝npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-react 寫入.babelrc中
安裝 npm install --save-dev babel-cli改寫package.json文件,添加scripts用于npm run執(zhí)行的時候用到
此時的目錄結(jié)構(gòu),在hello.js中寫了一個類 class Foo{},到這里都一帆風(fēng)順
參考阮一峰老師的教程npm run build的時候報錯,babel-node也不好用,有點讓我不明白首先我嘗試刪除lib文件夾 依然報錯,然后看錯誤信息,確保安裝的是最新版本的node和npm,這個沒問題從官網(wǎng)上下的最新版本,npm也是3.10.10. 可能是demo這個package出了問題,而不是npm本身。求如何解決感激不盡
問題解答
回答1:你缺乏的是命令行的基本知識,無關(guān)乎 npm 還是 babel.
你的 npm run build 不成功的原因是,你沒有按照教程正確建立文件夾?。?!
報錯信息很明顯,“src doesn’t exist” ,src 目錄不存在啊親!讀不懂報錯也是讓人糾結(jié)!
這就是別人告訴你這里錯了,你看到了,偏不看進腦子里,然后一直納悶我為啥錯了啊為啥錯了啊,可是人家分明已經(jīng)告訴你了啊,babel很蒙蔽啊,npm也很蒙蔽啊,babel說勞資都找不到 src 目錄 而且我都輸出了具體的錯誤了啊 。。。。。。。
好我們回過頭來說說“命令行”。
命令一般對應(yīng)一個可執(zhí)行文件或者腳本文件,一般是一個字符串,你在shell或者cmd里敲入這個命令,就等價于你雙擊執(zhí)行這個可執(zhí)行文件。命令后面跟的東西,叫“參數(shù)”。系統(tǒng)怎么知道有沒有某個命令呢?簡單理解吧,有兩個地方系統(tǒng)回去尋找,全局目錄和相對目錄。比如cmd里,光標(biāo)前面有個'路徑>',這個是你的當(dāng)前路徑。你輸入 npm 這個命令,系統(tǒng)會先查找當(dāng)前目錄有沒有npm這個可執(zhí)行文件,然后查找全局路徑下有沒有npm,你裝node的時候npm被安裝到了全局,所以npm被找到了,順利執(zhí)行。
好我們來具體解釋一下 npm run 這個命令。 npm run 會查找當(dāng)前目錄下的package.json,找到 script 這個字段里配置的命令。這個你已經(jīng)知道里。有一個你不知道的,npm run 會把當(dāng)前目錄下的 node_modules/.bin 目錄臨時地加到當(dāng)前的系統(tǒng)查找路徑列表里,也就是說,npm run build,build我們配置的命令是“babel src -d lib”, 系統(tǒng)會被要求執(zhí)行這個我們配置好的命令。babel這個字符是一個命令,系統(tǒng)不識別它,所以要查找有沒有對應(yīng)的可執(zhí)行文件,當(dāng)前目錄下沒有,因此會搜索 node_modules/.bin 這個目錄,如果這個也沒有,系統(tǒng)會搜索全局目錄。 記住 node_modules/.bin 這個查找邏輯只有在 npm run 里執(zhí)行的才會有。
npm install --save-dev babel-cli 會把babel-cli安裝到項目目錄下的node_modules里,因此npm run build 可以正常執(zhí)行。npm run build這時候等價于: project_dir> node_modules/.bin/babel src -d lib
再來說說 babel 命令,src -d lib,這個不看babel文檔也能猜到, src是源目錄,是告訴babel讓它處理 src 目錄下的js,-d 表示我要聲明目標(biāo)目錄參數(shù)啦,lib是目標(biāo)目錄參數(shù)的值,也就是告訴babel把src目錄下的js轉(zhuǎn)義到lib目錄。
這是命令行的基本使用能力。。。
回答2:babel如果不是全局安裝,不能直接在控制臺用 可以通過npm 腳本的方式調(diào)用
相關(guān)文章:
1. 在mybatis使用mysql的ON DUPLICATE KEY UPDATE語法實現(xiàn)存在即更新應(yīng)該使用哪個標(biāo)簽?2. mysql - 表名稱前綴到底有啥用?3. Navicat for mysql 中以json格式儲存的數(shù)據(jù)存在大量反斜杠,如何去除?4. mysql - 怎么生成這個sql表?5. mysql儲存json錯誤6. 哭遼 求大佬解答 控制器的join方法怎么轉(zhuǎn)模型方法7. mysql - 數(shù)據(jù)庫表中,兩個表互為外鍵參考如何解決8. 編輯成功不顯示彈窗9. 怎么php怎么通過數(shù)組顯示sql查詢結(jié)果呢,查詢結(jié)果有多條,如圖。10. sql語句 - 如何在mysql中批量添加用戶?
