Parcel JS:tree.render 不是函数

Posted

技术标签:

【中文标题】Parcel JS:tree.render 不是函数【英文标题】:Parcel JS: tree.render is not a function 【发布时间】:2021-07-09 06:15:41 【问题描述】:

每当我尝试运行生产构建命令 npm run buildnpx parcel build index.html 时,都会收到此错误。我有一个简单的 html 和 css 项目,没有反应,没有 3rd 方库 为什么会发生这种情况?我已经尝试过包裹版本 1.12.3、1.12.4 和 1.12.5。

这是错误:

/Users/user/Documents/HTML Apps/Project/index.html: tree.render is not a function
at /Users/user/Documents/HTML Apps/Project/node_modules/htmlnano/lib/modules/minifySvg.js:19:23
at /Users/user/Documents/HTML Apps/Project/node_modules/posthtml/lib/api.js:91:45
at traverse (/Users/user/Documents/HTML Apps/Project/node_modules/posthtml/lib/api.js:105:26)
at traverse (/Users/user/Documents/HTML Apps/Project/node_modules/posthtml/lib/api.js:111:5)
at traverse (/Users/user/Documents/HTML Apps/Project/node_modules/posthtml/lib/api.js:105:17)
at traverse (/Users/user/Documents/HTML Apps/Project/node_modules/posthtml/lib/api.js:111:5)
at traverse (/Users/user/user/HTML Apps/Project/node_modules/posthtml/lib/api.js:105:17)
at traverse (/Users/user/Documents/HTML Apps/Project/node_modules/posthtml/lib/api.js:111:5)
at traverse (/Users/user/Documents/HTML Apps/Project/node_modules/posthtml/lib/api.js:105:17)
at traverse (/Users/user/Documents/HTML Apps/Project/node_modules/posthtml/lib/api.js:111:5)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! Project@1.0.0 build: `parcel build index.html`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the Project@1.0.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR! /Users/user/.npm/_logs/2021-04-14T07_44_52_872Z-debug.log

【问题讨论】:

【参考方案1】:

事实证明,您可以通过将 htmlnano 配置为 not 缩小 SVG 来解决此问题。

.htmlnanorc 文件添加到项目根目录,JSON 配置对象如下:


    "minifySvg": false

文档的相关部分是here for V1(实际上没有提到minifySvg设置)或here for V2。

【讨论】:

【参考方案2】:

在我的情况下,它可以使用以下内容将 .htmlnanorc.js 添加到我的项目根目录:

module.exports = 
    "minifySvg": false
  

【讨论】:

【参考方案3】:

parcel build --no-minify index.html 它将跳转包裹的优化,让你继续。 希望对您有所帮助。 非常简单的方法请投票

【讨论】:

【参考方案4】:

在我的例子中,它通过使用带有 SVG 作为 src 的 IMG 标签来工作。

您可以自己权衡利弊: Adding vector graphics to the Web | MDN

注意:我不确定这样做是否会降低效率/优化。

如果有人发现这种方法有任何问题,请告诉我 :)

【讨论】:

以上是关于Parcel JS:tree.render 不是函数的主要内容,如果未能解决你的问题,请参考以下文章

如何修复在 Parcel.js 中运行的服务器上的“未找到条目”

在 parcel.js 中为已部署的网站添加 Autoprefixer 会破坏所有网站样式?

错误:未使用Node.js,NPM和Parcel定义HTML onClick

我的代码框上带有 react & parcel 的“目标容器不是 DOM 元素”错误

使用 Angular 4+ 版本时,是不是有任何专业人士可以用 Parcel 替换 Webpack?

PIXI.JS 基于parcel 打包es6 class语法 做了个流星雨