Node.js 创建Typescript NPM库
在我的项目中,我有一个Node.js 创建Typescript NPM库,node.js,reactjs,typescript,npm,Node.js,Reactjs,Typescript,Npm,在我的项目中,我有一个models目录(mymodels),其中包含几个重要的应用程序类型脚本类 我一直在应用程序中使用它,没有任何问题,现在我想让它成为一个npm包,这样我就可以在另一个项目中导入它 这就是我试图做的: my models目录中的npm init(包含所有我的 模型和类) mymodels目录中的npm链接(包含所有mymodels和类的目录) 另一个“客户”项目根目录中的npm链接my models 从客户端项目的某些文件中的“我的模型”导入* 我的问题是,无论我做什么,我都
models
目录(mymodels
),其中包含几个重要的应用程序类型脚本类
我一直在应用程序中使用它,没有任何问题,现在我想让它成为一个npm包,这样我就可以在另一个项目中导入它
这就是我试图做的:
my models
目录中的npm init(包含所有我的
模型和类)mymodels
目录中的npm链接(包含所有mymodels和类的目录)my models
{
"name": "my-models",
"version": "0.9.0",
"description": "API Client and models",
"main": "dist/main.js",
"types": "index.d.ts",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
"axios": "^0.19.0",
"@types/axios": "^0.14.0"
},
"devDependencies": {
"typescript": "^3.9.5"
}
}
这是在我的客户机项目中的导入,我尝试导入我的一个模型:
import { Student } from 'my-models'
但是等等,我是这样做的:
import { Student } from 'my-models/dist/main'
为什么??我在我的模型的package.json中说dist/main.js是主文件,为什么我不能从“我的模型”导入*
顺便说一句,这是我的models/dist目录:
所以我不确定我是否做错了什么,或者如何正确地做。感谢您的帮助我使用Angular CLI构建NPM库,即使它们不是Angular项目。您只需从package.json文件中删除角度依赖项,就可以通过一个强大的测试管道为您设置一个世界级的TypeScript项目
npm install --global @angular/cli
ng new my-lib --create-application=false
cd my-lib
ng generate library my-lib
生成库之后,您可以进入projects/my lib/src目录,打开package.json文件并消除角度依赖关系。现在您有了一个空白的TypeScript项目
ng构建我的库
将构建它
ng test my lib
将运行单元测试
cd放入dist/my lib文件夹,您可以npm发布
直接到npm
当你可以利用Angular团队的工作时,为什么要手动创建一个打字脚本?你的npm包中实际包含了dist
?您可以通过查看节点\u模块
进行双重检查。如果它不在那里,您应该使用package.json
中的files
属性来创建希望包含在npm包中的所有内容的列表。此外,这是一个私有npm包吗?套餐是如何包含的?是的,这是一个私人套餐,您的地区/是如何包含的?我在您的package.json
中没有看到files
属性。你是在使用npmjs.org、github软件包还是其他主机来运行这个软件包?在观看了Basarat Ali的视频后,我终于让它工作起来了:有趣。。。我会试一试的。然而,这种方法并不能帮助我理解为什么我构建包的方式是无效的。