You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求助:npm库juice 9.1.0安装编译失败,该如何解决?

解决juice 9.1.0安装后编译loader错误的方案

你遇到的编译错误,是因为juice依赖的cheerio、parse5采用了ES模块语法,但你的构建工具(比如webpack)默认不会转译node_modules目录下的这些包,导致缺少对应的loader解析模块。可以尝试以下几种解决方法:

方法1:配置构建工具转译指定依赖包(以webpack为例)

  • 在webpack配置文件中,调整babel-loader规则,让它处理cheerio和parse5:
    可以修改原有规则的排除逻辑,或者新增单独的规则:
    const path = require('path');
    
    module.exports = {
      // ...其他配置项
      module: {
        rules: [
          // 原有JS转译规则(如果有的话)
          {
            test: /\.(js|jsx)$/,
            exclude: /node_modules(?!\/(cheerio|parse5))/,
            use: {
              loader: 'babel-loader',
              options: {
                presets: ['@babel/preset-env']
              }
            }
          },
          // 或者单独新增规则处理这两个包
          // {
          //   test: /\.(js|jsx)$/,
          //   include: [
          //     path.resolve(__dirname, 'node_modules/cheerio'),
          //     path.resolve(__dirname, 'node_modules/parse5')
          //   ],
          //   use: {
          //     loader: 'babel-loader',
          //     options: {
          //       presets: ['@babel/preset-env']
          //     }
          //   }
          // }
        ]
      }
    };
    
  • 确保已安装必要的babel依赖,未安装则执行:
    npm install @babel/core @babel/preset-env babel-loader --save-dev
    

方法2:降级juice版本

如果不想修改构建配置,可尝试降级到兼容当前环境的juice版本,比如8.x系列:

npm uninstall juice
npm install juice@^8.0.0 --save-dev

方法3:调整构建工具的ES模块支持(针对webpack 5+)

若使用webpack 5,可开启ES模块兼容设置:

module.exports = {
  // ...其他配置
  resolve: {
    extensions: ['.js', '.json'],
    fullySpecified: false // 解决ES模块导入时的扩展名匹配问题
  }
};

内容的提问来源于stack exchange,提问作者baceeeee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 05:12:14