使用包运行构建的npm引发错误

dw1jzc5e  于 2022-11-14  发布在  其他
关注(0)|答案(4)|浏览(205)

安装了节点,运行npm init来创建package.json,安装了包。用npx parcel index.html运行服务器来运行服务器。然后我将“scripts”更改为“start”:“package.json中的”parcel index.html”,并运行npm run start,它也运行服务器没有问题。然后我添加到“scripts”“build”中:“包裹构建index.html”并运行npm运行构建。但这不起作用...我得到下面的错误...

> vjezba-17@1.0.0 build  
> parcel build index.html

× Build failed.

@parcel/namer-default: Target "main" declares an output file path of "index.js" which does not match the compiled bundle type "html".

  C:\Users\ijevr\Desktop\JavaScript\vjezba 17\package.json:4:11
    3 |   "version": "1.0.0",
  > 4 |   "main": "index.js",
  >   |           ^^^^^^^^^^ Did you mean "index.html"?
    5 |   "scripts": {
    6 |     "start": "parcel index.html",

  ℹ Try changing the file extension of "main" in package.json.

当然,将main更改为index.html表明该文件应该是一个.js文件... index.js是npm init在package.json中创建的文件。在我的文件夹中,我的主js文件名为script.js,在我运行npm init之前,它是这样命名的。然而,将main更改为script.js也没有帮助,我得到了与这里所述相同的错误...
我不知道该怎么办才好。

ct3nt3jp

ct3nt3jp1#

我没有找到解决办法,但我发现在Parcel 2中,构建过程发生了变化。现在可以使用了。
脚本应如下所示:

"start": "parcel",
"build": "parcel build"

和main以及源代码如下:
“main”:“dist/index.js”,//其中dist是构建的路径
“source”:“src/script.js”,//和src是我们项目的路径

ut6juiuv

ut6juiuv2#

main属性从package.json中完全删除,或者将以下内容添加到package.json

"targets": {
  "main": false
},
zazmityj

zazmityj3#

若要解决这些问题,请删除"main": "index.js", https://parceljs.org/getting-started/migration/#package.json%23main

wmtdaxz3

wmtdaxz34#

对我来说,这是可行的https://stackoverflow.com/a/71708198/20383654我按照建议添加了以下内容,构建成功了。"targets": { "main":false },

相关问题