【发布时间】:2020-08-06 06:25:00
【问题描述】:
我最近创建了一个 Typescript 包,我想在发布到 NPM 之前在应用中进行测试。
入口文件(index.ts)如下所示 =>
import Builder from './core/builder';
export default Builder;
基本上,有很多文件,但我希望用户只使用我在索引中导出的“静态”类Builder。所以用户可以做import Builder from 'builderts'
我的package.json文件夹如下
"name": "builderts",
"main": "./dist/builderts.js",
"types": "./dist/builderts.d.ts",
"files": [
"dist/*"
],
"scripts": {
"preversion" : "npm run lint",
"prepare": "npm run build",
"prepublishOnly": "npm test && npm run lint",
"version" : "npm run format && git add -A src",
"postversion" : "git push && git push --tags",
"build": "tsc",
"watch": "tsc-watch",
"format": "prettier --write \"src/**/*.ts\" \"src/**/*.js\"",
"lint": "eslint tsconfig.json"
},
还有我的tsconfig.json
{
"compilerOptions": {
"target": "es6", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017', 'ES2018', 'ES2019', 'ES2020', or 'ESNEXT'. */
"module": "amd", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', 'es2020', or 'ESNext'. */
"declaration": true, /* Generates corresponding '.d.ts' file. */
"declarationMap": true, /* Generates a sourcemap for each corresponding '.d.ts' file. */
"sourceMap": true, /* Generates corresponding '.map' file. */
"outFile":"./dist/builderts.js", /* Concatenate and emit output to single file. */
"outDir": "dist", /* Redirect output structure to the directory. */
"strict": true, /* Enable all strict type-checking options. */
"esModuleInterop": true, /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
"forceConsistentCasingInFileNames": true /* Disallow inconsistently-cased references to the same file. */
},
"include": ["src"],
"exclude": ["node_modules", "dist"]
}
我面临的问题是,我尝试创建一个小型测试项目并使用
安装模块npm install absolute/path
它安装正确,但是当我尝试使用
导入包时import Builder from 'builderts';
我没有自动完成功能,而且我有一个错误提示
文件 'D:/User/Local/gitRepo/builderts/dist/builderts.d.ts' 不是模块。
我不太明白我在这个过程中缺少什么。
【问题讨论】:
-
如果您检查
node_modules文件夹,您是否看到builderts项?您可以尝试卸载并使用npm pack(来自builders)和npm install <tarball file>(在您的测试项目中)吗?通常 npm 在本地包和符号链接方面存在着名的问题 -
是否可以提供
builderts.d.ts文件(甚至是其中的一部分)?可能是您的捆绑文件不是模块,因此您无法从中导入某些内容。这个文件存在吗?
标签: javascript typescript npm package