我有一个用Typescript编写的Node.js项目,它应该作为CLI运行,并且无法node_modules使用绝对路径导入位于目录外的模块(相对路径工作正常).可能很重要的是,我正在使用oclif框架来构建我的CLI.
我的项目安排如下:
cli
|--node_modules
|--src
|--my-module.ts
|--subdir
|--index.ts
Run Code Online (Sandbox Code Playgroud)
在my-module.ts我有:
export class MyClass {
myClassFcn(s: string) {
return 'result'
}
}
Run Code Online (Sandbox Code Playgroud)
该index.ts脚本包含以下内容:
import {MyClass} = require('my-module')
Run Code Online (Sandbox Code Playgroud)
当我尝试用ts-node执行我的应用程序时,我明白了
(node:10423) [MODULE_NOT_FOUND] Error Plugin: cli: Cannot find module 'my-module'
module: @oclif/config@1.6.17
task: toCached
plugin: cli
root: /home/eschmidt/Workspace/cli
Error Plugin: cli: Cannot find module 'my-module'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:571:15)
at Function.Module._load (internal/modules/cjs/loader.js:497:25)
at Module.require (internal/modules/cjs/loader.js:626:17)
at require (internal/modules/cjs/helpers.js:20:18)
at Object.<anonymous> (/home/eschmidt/Workspace/cli/src/commands/create/index.ts:5:1)
at Module._compile (internal/modules/cjs/loader.js:678:30)
at Module.m._compile (/home/eschmidt/Workspace/cli/node_modules/ts-node/src/index.ts:403:23)
at …Run Code Online (Sandbox Code Playgroud)