【问题标题】:Parcel does nothing and is not recognized as a commandParcel 什么都不做,不被识别为命令
【发布时间】:2021-12-25 07:26:00
【问题描述】:

我用 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 运行该命令后,终端冻结。这正常吗?

【问题讨论】:

  • 好的,很明显,我在安装 Parcel 时遇到了麻烦,而且我还没有回复它。但另一个主要问题是 NPM 配置以某种方式将 ignore-scripts 设置为 true。当我尝试通过 NPM 运行的所有东西都没有做任何事情时,我开始怀疑。我在这里找到了解决方案:stackoverflow.com/questions/59016328/npm-run-doesnt-do-anything

标签: javascript npm minify parceljs


【解决方案1】:

您似乎遇到了两个问题 - 实际上正确安装了 parcel 并在运行它时获得了意外的输出。对于第一个问题,我无法使用您提供的配置重现它,而且除了 Jos Faber 在他的回答中已经提出的建议之外,我没有任何想法。

对于第二个问题 - 当您运行 npx parcel 时,您期望输出缩小,但没有得到它。这是因为 package.json 中有 "source""main" 字段。这些旨在供库作者使用 - 即创建被其他项目使用而不是发送到浏览器的 npm 包的人。你(通常)不想最小化你的分布式库代码,因为它会干扰使用它的人调试、摇树和最小化他们的应用程序的能力,所以 parcel 默认情况下不会这样做。见parcel docs

默认情况下,在生产构建(包裹构建)期间启用优化,库目标除外 [强调添加]。

如果您正在开发 Web 应用程序,您需要从 package.json 中删除 "source""main" 并将您的 cli 命令更改为 parcel build src/index.js(parcel 会将输出放在 dist 文件夹中默认情况下,但如果您想更改它,请使用--dist-dir cli flag)。

如果您真的想缩小库,您可以通过将目标配置添加到您的 package.json 来做到这一点:

{
  ...
  "targets": {
    "main": {
      "optimize": true
    }
  }
}

【讨论】:

  • 简单地删除json中的“main”行会和“parcel build src/index.js”一样吗? (还不能测试,因为 parcel 没有正确安装。)
  • 否 - parcel 需要某种方式知道您的应用程序/库的根文件在哪里 - 如果您从 package.json 中删除“主”行(因为您没有开发库),您需要添加一个 CLI 参数。
  • 哦,我想我误解了你的意思——你的意思是如果你只留下“源”字段,你可以省略 cli 参数吗?我认为这会奏效。
【解决方案2】:

我已经复制了您的示例,一切都按预期运行。您可能想再次删除完整的 node_modules 文件夹和 npm i

另外,作为一个干净的测试,关闭您的浏览器。我不确定您的开发堆栈/环境是什么,并且可能有调试器打开,例如铬。

顺便说一句,如果没有使用-g 标志全局安装parcel,则cli 很可能无法识别该命令。然后只能通过脚本执行。

【讨论】:

    猜你喜欢
    • 2016-02-28
    • 2017-03-22
    • 1970-01-01
    • 2011-10-26
    • 2014-11-17
    • 2013-05-01
    • 1970-01-01
    • 2015-04-21
    • 2013-03-27
    相关资源
    最近更新 更多