繁体   English   中英

导入的节点模块 - 错误:找不到模块

[英]Imported Node Module - Error: Cannot find module

我正在尝试修改这个现有的 npm package,但没有取得多大成功。 我已经浪费了几个小时的故障排除,希望得到一些指导。

https://www.npmjs.com/package/dxf

我已将 package 分叉到我的 github 帐户中。 然后我使用 npm 在本地安装模块(W10 运行最新的 LTS 节点)。

npm i https://github.com/mgbolts/dxf

它安装时没有错误,但是当我在我的应用程序中需要它时,我收到此错误:

错误:找不到模块“S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\lib\index.js”。 请确认 package.json 具有有效的“主”条目

查看 dxf 模块文件夹,它们是没有 lib 子目录的,index.js 文件位于 src 子目录中。 我已经修改了 dxf package 文件夹中的 package.json 文件以反映这一点。 进行此编辑后,我现在收到此错误:

S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\src\index.js:1 从 './config' 导入配置

语法错误:无法在 Z497031794414A552435F90151AC3B54_BZ.Module 的 wrapSafe(节点:internal/modules/cjs/loader:1031:15)处的 Object.compileFunction(节点:vm:352:18)的模块外使用导入语句。 :internal/modules/cjs/loader:1153:10) 在 Module.load (node:internal/modules/cjs/loader:981:32) 在 Function.Module._load (node:internal/modules/cjs/loader:822 :12) 在 Module.require (node:internal/modules/cjs/loader:1005:19) 在 require (node:internal/modules/cjs/helpers:102:18) 在 Object。 (S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js:2:13) 在 Module._compile (node:internal/modules/cjs/loader:1101:14)

然后我尝试在模块文件夹中的 package.json 文件中添加一个新条目(“type”:“module”)。 之后我收到此错误:

S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js:2 const dxf = require('dxf') ^ 错误 [ERR_REQUIRE_ESM]: require() of ES Module S:\mgbolts\coding\不支持来自 S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js 的 Udemy\Nodejs\projects\plasma\node_modules\dxf\src\index.js。

我的代码解决这个问题很简单,就是一个简单的 const dxf = require('dxf')。

这是 package.json 文件的摘录,与上面提到的两个编辑一样:

“名称”:“dxf”,“版本”:“4.6.1”,“描述”:“节点/浏览器的 DXF 解析器”,“主”:“src/index.js”,“类型”:“模块” , "bin": { "dxf-to-svg": "src/cli.js"

此事已解决。 从 github 安装时,我没有意识到您需要编译 package。 从 NPM 注册表安装时不需要任何东西。

模块的package.json文件有一个运行编译过程脚本的脚本。
npm 运行 prepublishOnly

花了一点时间来安装依赖项(browserify、babel、rimraf),但它已经编译并且现在可以工作了......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM