簡體   English   中英

Parcel 什么都不做,不被識別為命令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM