[英]Parcel does nothing and is not recognized as a command
我用 npm 安裝了 Parcel,一切都安裝得很好,沒有錯誤。 我有一個這樣的 package.json:
{
"name": "example",
"version": "0.1.0",
"source": "src/index.js",
"main": "dist/index.js",
"scripts": {
"build": "parcel build"
},
"devDependencies": {
"parcel": "^2.0.1"
}
}
我只是按照網站上的說明進行操作,但是當我運行npm run build
它只是說:
附上調試器。 等待調試器斷開連接...
然后它返回到命令提示符。 沒有觸及或創建任何文件。 實際上, parcel
在終端中不被識別為命令。 我嘗試卸載並重新安裝 Parcel,但它仍然不起作用。
我確實在npx parcel build src/index.js
取得了一些成功,但這種行為對我來說似乎很奇怪。 看起來它重新安裝了 Parcel 並在我的目錄中留下了一個 .parcel-cache 文件夾。 它確實產生了一個輸出 js,但它對 js 所做的只是將一個全局變量更改為名稱中帶有一長串數字的變量。 我只想縮小js。 npx 運行該命令后,終端會凍結。 這是正常的嗎?
我已經復制了你的例子,一切都按預期運行。 您可能想要再次刪除完整的node_modules
文件夾和npm i
。
另外,作為一個干凈的測試,關閉瀏覽器。 我不確定您的開發堆棧/環境是什么,並且可能在 Chrome 中打開了調試器。
順便說一句,如果沒有使用-g
標志全局安裝parcel,則cli很可能無法識別該命令。 然后它只能通過腳本執行。
看起來您遇到了兩個問題 - 實際上正確安裝了 Parcel 並在運行它時獲得了意外的輸出。 對於第一個問題,我無法使用您提供的配置來重現它,除了 Jos Faber 在他的回答中已經提出的建議之外,我沒有任何想法。
對於第二個問題 - 當您運行npx parcel
,您期望縮小輸出,但沒有得到它。 這是因為 package.json 中的"source"
和"main"
字段。 這些旨在供庫作者使用 - 即人們創建的 npm 包被其他項目使用而不是發送到瀏覽器。 您(通常)不想最小化您的分布式庫代碼,因為它會干擾使用它來調試、搖樹和最小化應用程序的人的能力,因此默認情況下,parcel 不會這樣做。 查看包裹文檔:
默認情況下,在生產構建(包構建)期間啟用優化,庫目標除外[強調已添加]。
如果您正在開發 Web 應用程序,您需要從package.json
刪除"source"
和"main"
,並將您的 cli 命令更改為parcel build src/index.js
(parcel 會將輸出放入dist
文件夾中默認,但如果您想更改它,請使用--dist-dir
cli 標志)。
如果您確實想縮小庫,您可以通過將目標配置添加到 package.json 來做到這一點:
{
...
"targets": {
"main": {
"optimize": true
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.