Imported Node Module - Error: Cannot find module
Imported Node Module - Error: Cannot find module
我正在尝试修改这个现有的 npm 包,但没有成功。我已经浪费了几个小时进行故障排除,希望得到一些指导。
https://www.npmjs.com/package/dxf
我已经将软件包分叉到我的 Github 帐户中。然后我使用 npm 在本地安装模块(W10 运行 最新的 LTS 节点)。
npm i https://github.com/mgbolts/dxf
它安装没有错误,但是当我在我的应用程序中需要它时,我得到这个错误:
Error: Cannot find module 'S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\lib\index.js'.
Please verify that the package.json has a valid "main" entry
查看dxf模块文件夹,没有lib子目录,index.js文件位于src子目录。我修改了 dxf 包文件夹中的 package.json 文件以反映这一点。编辑后,我现在收到此错误:
S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\src\index.js:1
import config from './config'
SyntaxError: Cannot use import statement outside a module
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1031:15)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js:2:13)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
然后我尝试添加一个新条目 ("type": "module") 到模块文件夹中的 package.json 文件。之后我得到这个错误:
S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js:2
const dxf = require('dxf')
^
Error [ERR_REQUIRE_ESM]: require() of ES Module S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\src\index.js from S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js not supported.
我的代码解决这个问题非常简单,只是一个简单的 const dxf = require('dxf').
这里是 package.json 文件的摘录以及上面提到的两个编辑:
"name": "dxf",
"version": "4.6.1",
"description": "DXF parser for node/browser",
"main": "src/index.js",
"type": "module",
"bin": {
"dxf-to-svg": "src/cli.js"
}
问题已解决。我没有意识到从 github 安装时需要编译软件包。从 NPM 注册表安装时不需要。
模块的 package.json 文件有一个 运行 编译过程脚本的脚本。
npm 运行 仅预发布
花了一些时间来安装依赖项(browserify、babel、rimraf),但它已编译并且现在可以工作了...
我正在尝试修改这个现有的 npm 包,但没有成功。我已经浪费了几个小时进行故障排除,希望得到一些指导。
https://www.npmjs.com/package/dxf
我已经将软件包分叉到我的 Github 帐户中。然后我使用 npm 在本地安装模块(W10 运行 最新的 LTS 节点)。
npm i https://github.com/mgbolts/dxf
它安装没有错误,但是当我在我的应用程序中需要它时,我得到这个错误:
Error: Cannot find module 'S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\lib\index.js'.
Please verify that the package.json has a valid "main" entry
查看dxf模块文件夹,没有lib子目录,index.js文件位于src子目录。我修改了 dxf 包文件夹中的 package.json 文件以反映这一点。编辑后,我现在收到此错误:
S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\src\index.js:1
import config from './config'
SyntaxError: Cannot use import statement outside a module
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1031:15)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js:2:13)
at Module._compile (node:internal/modules/cjs/loader:1101:14)
然后我尝试添加一个新条目 ("type": "module") 到模块文件夹中的 package.json 文件。之后我得到这个错误:
S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js:2
const dxf = require('dxf')
^
Error [ERR_REQUIRE_ESM]: require() of ES Module S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\node_modules\dxf\src\index.js from S:\mgbolts\coding\Udemy\Nodejs\projects\plasma\src\index.js not supported.
我的代码解决这个问题非常简单,只是一个简单的 const dxf = require('dxf').
这里是 package.json 文件的摘录以及上面提到的两个编辑:
"name": "dxf",
"version": "4.6.1",
"description": "DXF parser for node/browser",
"main": "src/index.js",
"type": "module",
"bin": {
"dxf-to-svg": "src/cli.js"
}
问题已解决。我没有意识到从 github 安装时需要编译软件包。从 NPM 注册表安装时不需要。
模块的 package.json 文件有一个 运行 编译过程脚本的脚本。
npm 运行 仅预发布
花了一些时间来安装依赖项(browserify、babel、rimraf),但它已编译并且现在可以工作了...