非风动非幡动
发布于
更新于
处理 “依赖的请求是一个表达式” 的警告
时有风吹幡动。一僧曰风动,一僧曰幡动。议论不已。惠能进曰:‘非风动,非幡动,仁者心动。
在项目中使用 svgo
,虽然这个包是为 nodejs 端用的,但是里边的方法可以给 web 来使用。
首先引入,用的是 commonjs 写法:
const svgo = require('svgo')
可以自动转换为 esm 的写法。
import svgo from 'svgo'
然后拿到里边的优化的方法来使用:
const { optimize } = svgo
但是这样会报一个警告,不影响运行,可以会因为经过阻断了 gitlab CI 的构建。
./node_modules/svgo/lib/svgo-node.js
Critical dependency: the request of a dependency is an expression
这句话的直译是 「关键依赖:依赖的请求是一个表达式 」,翻遍 stackoverflow 无果。
查看代码,入口文件是指向的 "main": "./lib/svgo-node.js",
,然后在 svgo-node.js
里边又引入了 require('./svgo.js');
于是试一下直接引入 svgo.js
import svgo from 'svgo/lib/svgo'
const { optimize } = svgo
发现就不报警告了。