非风动非幡动

发布于     更新于
处理 “依赖的请求是一个表达式” 的警告

时有风吹幡动。一僧曰风动,一僧曰幡动。议论不已。惠能进曰:‘非风动,非幡动,仁者心动。

在项目中使用 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

发现就不报警告了。