如何知道是否可以使用 ES6 导入语法导入 npm 包?

How to know if an npm package can be imported with ES6 import syntax?

除了查看包的文档和 trial/error 尝试之外,我如何才能确定是否可以使用 ES6 导入语法导入 npm 包?

包文件夹中有我可以查看的文件吗?

我不断地质疑自己。

例如:

md5DOCS 只提到 md5 = require('md5'); 但我刚刚测试过并且它适用于 import md5 from 'md5'

如何检查包裹并确定?

既然你使用的是 Babel 和 webpack,那么你总是可以使用 import。 Webpack 负责转译代码中的导入语句以包含来自 npm 包的代码。我想不出 import 不起作用而 require 会起作用的任何情况。

您必须检查 module/package 是否有 distsrc 文件夹。如果包有dist文件夹,那么可以使用es6的import语句导入。否则如果有src文件夹,则无法使用es6的import语句导入,必须使用cjs的require函数导入此类模块。如果您尝试使用 import 语句导入 cjs 模块,您将收到以下错误:

Syntax Error: Cannot use import statement outside a module