目录

  • 出错现象
  • 出错原因
    • snabbdom v0.7.4
    • snabbdom v1.0.1+
  • 解决方案总结
    • M1:将Snabbdom的版本降级成v0.7.4即可
    • M2:使用package.json的exports
    • M3:将引用路径直接改为完整路径

出错现象

这个报错是我在安装snabbdom并导入的时候报的错误。我用了两种引用方式:

  • CommonJS
const snabbdom = require('snabbdom')
  • ESModules
import { h, chunk, init } from 'snabbdom'

出错原因

这个也是关于Snabbdom的版本问题,我现在使用的版本是v2.1.0

snabbdom v0.7.4

如果是这个版本,上述的两种写法都是可以使用的

snabbdom v1.0.1+

Snabbdom 在 2020年6月18日更新到 v1.0.1 版本,如果是这个版本以后的都会出现这个问题。原因是因为v1.0.1 版本相对于 v0.7.4 版本的变化,去除了 snabbdom.ts 模块,新增了 init.ts 模块 ,如果使用 v1.0.1 版本的话导入 h、init 函数,文档中写的是如下的方式:

import { init } from 'snabbdom/init'
import { h } from 'snabbdom/h' // helper function for creating vnodes

但是这种方式仍然没有办法解决的话,是因为这个snabbdom/h并不是模块路径,这个路径是作者在 package.json 中的 exports 字段设置的,而 parcel 打包工具不支持 exports 这个字段,webpack 4 也不支持,webpack 5 beta 支持该字段。该字段在导入 snabbdom/init 的时候会补全路径成 snabbdom/build/package/init.js

// package.json
"exports": {"./init": "./build/package/init.js","./h": "./build/package/h.js",...
}

如果不能设置exports字段,就直接用模块的全路径也可以解决

import { h } from 'snabbdom/build/package/h'
// or
const { h } = require('snabbdom/build/package/h')

解决方案总结

M1:将Snabbdom的版本降级成v0.7.4即可

M2:使用package.json的exports

  1. 引用方式
import { init } from 'snabbdom/init'
import { h } from 'snabbdom/h'
  1. 在 package.json 中设置 exports 字段
// package.json
"exports": {"./init": "./build/package/init.js","./h": "./build/package/h.js",...}

M3:将引用路径直接改为完整路径

import { h } from 'snabbdom/build/package/h'
import { init } from 'snabbdom/build/package/init'
import { classModule } from 'snabbdom/build/package/modules/class'
// or
const { h } = require('snabbdom/build/package/h')
const { init } = require('snabbdom/build/package/init')
const { classModule } = require('snabbdom/build/package/modules/class')

it works~

Cannot resolve dependency ‘snabbdom‘ or ‘snabbdom/init‘相关推荐

  1. Unable to resolve dependency for xxx, Could not resolve project

    我们为了在不同的环境使用不同的配置,所以会在gradle中添加buildtypes来区分环境,并且在下面进行不同的配置,比如: buildTypes {dev{signingConfig signin ...

  2. Unable to resolve dependency问题解决

    Unable to resolve dependency 是一个让我头疼的问题 之前总是阴差阳错调试好 但是也没有总结出来方法 但是今天找到了 方法来源 https://jingyan.baidu.c ...

  3. npm install报错 npm ERR,code ERESOLVE npm ERR,ERESOLVE unable to resolve dependency tree

    文章目录 前言 问题分析 解决方法 转载于 前言 在下载npm时报错npm ERR! code ERESOLVE npm ERR! ERESOLEVE unable to resolve depend ...

  4. npm报错 npm ERR! Could not resolve dependency:npm ERR! peer pug@“^2.0.0“ from pug-loader@2.4.0

    npm报错 npm ERR! Could not resolve dependency:npm ERR! peer pug@"^2.0.0" from pug-loader@2.4 ...

  5. could not resolve dependency: npm err! peer react@“^16.8.0 || ^17.0.0“ from @material-ui/core@4.12.4

    问题 在执行 npm install 时看到以下错误: could not resolve dependency: npm err! peer react@"^16.8.0 || ^17.0 ...

  6. npm安装依赖报错 unable to resolve dependency tree....

    场景: 之前的项目组已经没我需求了,我被分配到一个新项目组,重新clone的master代码,在npm install的时候报错unable to resolve dependency tree- 这 ...

  7. 解决Android studio 编译问题(版本不对问题)Unable to resolve dependency for******

    在 Android studido 新建工程编译出现了几十个错误: Unable to resolve dependency for ':app@debug/compileClasspath': Co ...

  8. npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree

    问题 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! Foun ...

  9. Vue 安装 Element UI时报错 code ERESOLVE unable to resolve dependency tree

    检查当前版本是否为 npm 7.x,7.x对树依赖检查更严格,需要在命令后增加--legacy-peer-deps以规避此报错,在安装其他依赖时如果报错类似也可如此解决,当然也可以将npm降级到6.x ...

最新文章

  1. 一起谈.NET技术,在Mono 2.8上部署ASP.NET MVC 2
  2. 【Andorid X 项目笔记】禁用ListView的Fling功能(1)
  3. 如何科学地浪费朋友手中的啤酒
  4. 怎样在半年内把一个团队带垮?
  5. javah命令 C Header and Stub File Generator
  6. c 怎么获取服务器文件是否存在,powershell - 需要找出服务器上是否存在特定的文件夹。如果是,那么哪个驱动器是C:或D - 堆栈内存溢出...
  7. 斜线 背景_腊梅花开 摄影 | 斜线加中心构图
  8. 如虎添翼VSPHERE 4/5 环境下 linux/windows 动态扩展磁盘
  9. GA-T1400协议--人脸数据
  10. python制作词云图
  11. 室内定位之蓝牙定位精度(蓝牙RSSI定位)
  12. Ubuntu16.04使用ninja编译安装LLVM
  13. 供暖分界线”线在几何
  14. C++ 数据结构(三)列表(3)有序列表
  15. linux操作系统之常用远程管理命令:关机和重启命令shutdown详解 简单易懂~
  16. 如何用无人机倾斜摄影采集影像,完成实景三维重建?
  17. matlab 4d double,c – 对于 4D阵列MatLab造成巨大的性能损失?
  18. 如何把压铸模做得好?
  19. 基于SSM框架的医院挂号系统设计与实现
  20. VMware15内安装Ubuntu20.04系统教程

热门文章

  1. [力扣c语言实现]207. 课程表(拓扑排序)
  2. oracle 单记录函数,SQL中的单记录函数
  3. 八数码(Eight Digits)问题:宽度优先搜索、全局择优搜索、A*算法(C语言实现)
  4. 头文件和库函数的区别
  5. 林深时见鹿,海蓝时见鲸
  6. Android开发12年高级工程师:作为 IT 行业的过来人,我想对你们说~(职场必看!!!)
  7. 在线词云加载慢,有水印?作为程序员,教你如何使用Java,Python和JS生成词云!
  8. 85 数模 电动汽车目标客户销售策略研究(21 华数 C)
  9. 我给游戏服务器端开发的一些建议
  10. java版mc复制tnt,教程/方块和物品复制