/node_modules/lodash.template/index.js:1558 throw result; ^ SyntaxError: Unexpected token = 报错解决

报错信息

node_modules/lodash.template/index.js:1558
    throw result;
    ^

SyntaxError: Unexpected token =
    at Function (<anonymous>)
    node_modules/lodash.template/index.js:1550:12

问题背景

使用vue-server-renderer编译,插入html到模版中

const fs = require('fs')
const {
    resolve
} = require('path')

const createBundleRenderer = require('vue-server-renderer').createBundleRenderer


// 读取`skeleton.json`,以`index.html`为模板写入内容
const renderer = createBundleRenderer(resolve(__dirname, './dist/skeleton.json'), {
    template: fs.readFileSync(resolve(__dirname, './index.html'), 'utf-8')
})

// 把上一步模板完成的内容写入(替换)`index.html`
renderer.renderToString({}, (err, html) => {
    if (err) {
        console.log('err:' + err);
    }
    fs.writeFileSync('index.html', html, 'utf-8')
})

原因

原来是原来html中有这样的代码

<%= htmlWebpackPlugin.options.loading.css %>
<%= htmlWebpackPlugin.options.loading.html %>

导致解析插入失败

 <!--vue-ssr-outlet-->

替换这个,把<%= htmlWebpackPlugin.options.loading.css %> <%= htmlWebpackPlugin.options.loading.html %>
删除掉就好了。

当你看到这样的错误信息 "Error: Cannot find module 'node:path'",它通常表示Node.js在尝试加载名为 'node:path' 的模块时失败了。'node:path' 是 Node.js 自带的一个内置模块,它提供了路径操作相关的功能。 这个错误可能由以下几个原因引起: 1. 模块路径错误:确保你引用模块的路径正确无误。如果是异步加载,可能是模块的相对路径问题,或者模块名称拼写或大小写不一致。 2. 模块未安装:如果 'node:path' 是第三方模块,确保已经使用 `npm install node:path` 或者 `yarn add node:path` 安装了。 3. 模块更新问题:有时候更新了项目依赖,旧版本的模块不再可用,需要检查是否有更新到最新版本。 4. 文件系统问题:如果模块在预期的目录中,但Node.js无法访问,可能是权限问题或文件系统配置错误。 5. 初次运行:对于一些只在开发环境或特定条件下才使用的模块,初次运行时可能会因为环境变量设置不正确导致找不到。 为了解决这个问题,你可以按照以下步骤排查: 1. 检查代码中引入模块的方式是否正确。 2. 使用 `require.resolve('node:path')` 打印出实际查找的模块路径,确认是否能找到。 3. 如果是第三方模块,确保已经添加到项目的 `package.json` 的 `dependencies` 或 `devDependencies` 字段。 4. 重新启动开发服务器或清理并重新构建项目。 5. 在遇到问题时查阅模块文档或搜索错误信息,看是否有其他开发者遇到过类似问题。 如果你需要帮助调试,请提供具体的上下文和更多代码片段,以便更准确地定位问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值