1

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

4

2 回答 2

2

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

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

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

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

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

{
  ...
  "targets": {
    "main": {
      "optimize": true
    }
  }
}
于 2021-11-15T15:26:08.533 回答
0

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

此外,作为一个干净的测试,请关闭您的浏览器。我不确定您的开发堆栈/环境是什么,并且可能在 Chrome 中打开了调试器。

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

于 2021-11-13T21:56:36.797 回答