找不到模块 - typescript cli
module not found - typescript cli
这是我的项目:https://github.com/CrunchyArtie/pile-de-la-honte-cli
在本地(npm run dev
或 npm i -g .
)使用它时它可以工作,但是当我使用 npm pack
构建的存档或在发布后安装它时,它不工作。
错误:
internal/modules/cjs/loader.js:796
throw err;
^
Error: Cannot find module './models/questions/home.question'
Require stack:
- C:\Users\lundi\AppData\Roaming\npm\node_modules\pile-de-la-honte\dist\index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:793:17)
at Function.Module._load (internal/modules/cjs/loader.js:686:27)
at Module.require (internal/modules/cjs/loader.js:848:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (C:\Users\lundi\AppData\Roaming\npm\node_modules\pile-de-la-honte\dist\index.js:10:25)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\Users\lundi\AppData\Roaming\npm\node_modules\pile-de-la-honte\dist\index.js'
]
}
而dist文件夹只是容器index.js
。
我尝试添加到 package.json
:
main: "dist/index.js",
bin: "dist/index.js"
和这个 tsconfig :
"extends": "@tsconfig/recommended/tsconfig.json",
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
],
"compilerOptions": {
"outDir": "dist",
"lib": [
"es6",
"es2015",
"dom",
"es2019",
"es2017",
"es7"
],
"target": "es5",
"module": "commonjs",
"declaration": true,
"rootDir": "src",
"strict": true,
"types": ["node"],
"esModuleInterop": true,
"resolveJsonModule": true,
"baseUrl": ".",
"paths": {
"./*": [
"dist/*"
]
}
}
问题: 在 .gitignore
中有 dist
文件夹。
解决方法:
- 复制
.gitignore
,
- 将这个新文件重命名为
.npmignore
、
- 打开
.npmignore
并删除关于 dist
文件夹的行。
为什么 : Npm 将打包整个项目 expect :
- 没有
.gitignore
或 .npmignore
,
- 如果此文件存在
.npmignore
中列出的内容。
- 如果
.gitignore
文件存在但.npmignore
文件不存在,.gitignore
中列出的内容。
这是我的项目:https://github.com/CrunchyArtie/pile-de-la-honte-cli
在本地(npm run dev
或 npm i -g .
)使用它时它可以工作,但是当我使用 npm pack
构建的存档或在发布后安装它时,它不工作。
错误:
internal/modules/cjs/loader.js:796
throw err;
^
Error: Cannot find module './models/questions/home.question'
Require stack:
- C:\Users\lundi\AppData\Roaming\npm\node_modules\pile-de-la-honte\dist\index.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:793:17)
at Function.Module._load (internal/modules/cjs/loader.js:686:27)
at Module.require (internal/modules/cjs/loader.js:848:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (C:\Users\lundi\AppData\Roaming\npm\node_modules\pile-de-la-honte\dist\index.js:10:25)
at Module._compile (internal/modules/cjs/loader.js:955:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
at Module.load (internal/modules/cjs/loader.js:811:32)
at Function.Module._load (internal/modules/cjs/loader.js:723:14)
at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10) {
code: 'MODULE_NOT_FOUND',
requireStack: [
'C:\Users\lundi\AppData\Roaming\npm\node_modules\pile-de-la-honte\dist\index.js'
]
}
而dist文件夹只是容器index.js
。
我尝试添加到 package.json
:
main: "dist/index.js",
bin: "dist/index.js"
和这个 tsconfig :
"extends": "@tsconfig/recommended/tsconfig.json",
"include": [
"src/**/*"
],
"exclude": [
"node_modules",
"**/*.spec.ts"
],
"compilerOptions": {
"outDir": "dist",
"lib": [
"es6",
"es2015",
"dom",
"es2019",
"es2017",
"es7"
],
"target": "es5",
"module": "commonjs",
"declaration": true,
"rootDir": "src",
"strict": true,
"types": ["node"],
"esModuleInterop": true,
"resolveJsonModule": true,
"baseUrl": ".",
"paths": {
"./*": [
"dist/*"
]
}
}
问题: 在 .gitignore
中有 dist
文件夹。
解决方法:
- 复制
.gitignore
, - 将这个新文件重命名为
.npmignore
、 - 打开
.npmignore
并删除关于dist
文件夹的行。
为什么 : Npm 将打包整个项目 expect :
- 没有
.gitignore
或.npmignore
, - 如果此文件存在
.npmignore
中列出的内容。 - 如果
.gitignore
文件存在但.npmignore
文件不存在,.gitignore
中列出的内容。