安装了节点,运行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也没有帮助,我得到了与这里所述相同的错误...
我不知道该怎么办才好。
4条答案
按热度按时间ct3nt3jp1#
我没有找到解决办法,但我发现在Parcel 2中,构建过程发生了变化。现在可以使用了。
脚本应如下所示:
和main以及源代码如下:
“main”:“dist/index.js”,//其中dist是构建的路径
“source”:“src/script.js”,//和src是我们项目的路径
ut6juiuv2#
将
main
属性从package.json
中完全删除,或者将以下内容添加到package.json
:zazmityj3#
若要解决这些问题,请删除
"main": "index.js",
https://parceljs.org/getting-started/migration/#package.json%23mainwmtdaxz34#
对我来说,这是可行的https://stackoverflow.com/a/71708198/20383654我按照建议添加了以下内容,构建成功了。
"targets": { "main":false },