为什么节点会抛出错误:Cannot find module * import from * using type="module" in package.json?

问题描述

今天第一次使用 svelte-kit 生成生成一个包含 "type": "module" 的 package.json。

现在我想调用一个 postbuild 脚本:

"scripts": {
  "postbuild": "node ./postbuild/index.js",}

其中包含:

const { tailwindExtractor } = require("tailwindcss/lib/lib/purgeUnusedStyles");
...

由于新错误 require is not defined,我将 ./postbuild/index.js 文件更改为:

import { tailwindExtractor } from "tailwindcss/lib/lib/purgeUnusedStyles";
...

但我仍然收到从节点调用文件错误

internal/process/esm_loader.js:74
    internalBinding('errors').triggeruncaughtException(
                              ^

Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\kit\node_modules\tailwindcss\lib\lib\purgeUnusedStyles' imported from C:\kit\tools\postbuild\index.js
Did you mean to import tailwindcss/lib/lib/purgeUnusedStyles.js?
    at finalizeResolution (internal/modules/esm/resolve.js:276:11)
    at moduleResolve (internal/modules/esm/resolve.js:699:10)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11)
    at Loader.resolve (internal/modules/esm/loader.js:86:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:230:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:56:40)
    at link (internal/modules/esm/module_job.js:55:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

到底是怎么回事?

我使用的是 npm 7.8.0 和节点 v14.16.0。

我也用 --experimental-modules 尝试过:我遇到了同样的错误

这是我需要导入的文件https://github.com/tailwindlabs/tailwindcss/blob/master/src/lib/purgeUnusedStyles.js

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...