搜索
搜索
天涯的知库
显示页面
过去修订
您的足迹:
本页面只读。您可以查看源文件,但不能更改它。如果您觉得这是系统错误,请联系管理员。
====== NPM 包开发 ====== 已经做好了一模版,直接拉取就好了 <WRAP center round download 60%> <color #ff7f27>''%%scp -r git@serverpi:~/swap/npmTemplate .%%''</color> <color #ff7f27>''%%scp -r git@serverpi:~/swap/npmTemplate/ ./folder%%''</color> </WRAP> [[https://monsoir.github.io/Notes/Node/writing-npm-package-in-typescript.html|使用 TypeScript 编写 npm 包并进行发布]] [[https://juejin.cn/post/6844903892119977998|一步步构建发布一个 TypeScript NPM 包]] ===== 初始化 ===== 建立一个目录 base <konsole> mkdir base cd base npm init -y echo "node_modules" >> .gitignore </konsole> 修改package.json文件 <code > "main": "./dist/index.js", "types": "./dist/index.d.ts", </code> 新建 tsconfig.json <code> { "compilerOptions": { "target": "es5", "module": "commonjs", "declaration": true, "outDir": "./dist", "strict": true, "strictNullChecks": true, "lib": ["es6"], "esModuleInterop": true, }, "include": ["src"], "exclude": ["node_modules", "**/Test/*", "private"], } </code> 创建 src 文件夹,在其下新建一个 index.ts,内容如下 export const Greeter = (name: string) => `Hello ${name}`; 在 package.json 中添加 build script <color #ff7f27>''%%"build": "tsc"%%''</color>,运行 <color #ff7f27>''%%npm run build%%''</color> ===== 测试 ===== 安装常用包 <code > npm install ts-node --save-dev npm install --save-dev typescript tslint @types/node npm install --save-dev tsconfig-paths npm install chai --save-dev npm install mocha --save-dev npm i --save-dev @types/mocha npm i --save-dev @types/chai npm i chai-as-promised -D npm i --save-dev @types/chai-as-promised npm i moment npm i --save-dev nodemon </code> 在 package.json 中添加 <code> "scripts": { "test": "mocha --timeout 10000 -r ts-node/register Test/**/*.spec.ts Test/*.spec.ts", "test-single": "mocha --timeout 100000 -r ts-node/register", "build": "tsc -P tsconfig.json" } </code> 创建一个测试文件 base.spec.ts <code | file> import { expect, assert } from 'chai'; import 'mocha'; describe('基本 测试', () => { it('Reduce', async () => { assert.equal(true, true, 'simple') }) }) </code> 运行 <color #ff7f27>''%%npm run test-single Test/base.spec.ts%%''</color> 测试异步函数需要安装 chai-as-promised <code> npm i chai-as-promised -D npm i --save-dev @types/chai-as-promised </code> *.spec.ts 文件中使用 <code> const chai = require('chai') const expect = chai.expect chai.use(require('chai-as-promised')) describe('Yahoo API', () => { it('MetaData()', async () => { // MetaData() 是异步函数 expect(api.MetaData('CN', 'AAAA')).to.eventually.be.rejected }) }) </code> 添加一个debug.ts\\ 安装 <color #ff7f27>''%%npm i --save-dev ts-node tsconfig-paths%%''</color> ([[it:node:ts_node|]]) <code> async function PlayCommand(){ console.log('start debug...') let s = 0 } PlayCommand() </code> 创建一个测试 lauch.json <code > { // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "pwa-node", "request": "launch", "name": "Debug TS", "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}/Test/debug.ts", "runtimeArgs": ["-r", "ts-node/register", "-r", "tsconfig-paths/register"], "console": "integratedTerminal", } ] } </code> ===== 更新版本 ===== <color #ff7f27>''%%npm version patch%%''</color> ( minor, major) ===== 发布包 ===== 新建文件 <color #ff7f27>''%%.npmignore%%''</color> 清除敏感文件 <code> private Test </code> <color #ff7f27>''%%npm publish%%''</color> 在第二个项目中使用 <color #ff7f27>''%%npm i simperatorbase@latest%%''</color> 并倒入文件 <code> import {Greeter} from "simperatorbase/dist" let msg = Greeter(name) + `!`; </code> ====== NPM 注册账号 ====== 官方网站为 https://www.npmjs.com/ 在官方网站上注册成功后,命令行窗口可以添加用户 <code> npm adduser // 依次输入注册时使用的 username、password、email npm config ls // 查看当前配置 ~ cat /Users/dd/.npmrc // 查看用户信息 npm logout // 退出登录 </code> 创建私人 npm 服务器,这样代码就不会泄漏 (([[https://medium.com/aeturnuminc/publish-and-resolving-npm-packages-using-private-npm-server-easy-step-by-step-c16f886d452f|Publish and Resolving npm packages using private npm server ]])) [[https://github.com/verdaccio/verdaccio|verdaccio]] {{fa>github}} <code > npm i -g npm npm install -g verdaccio // 启动服务 要后台运行可 pm2 start verdaccio verdaccio </code> 访问私人服务器 <color #ff7f27>''%%npm adduser --registry http://localhost:4873%%''</color> (可将localhost改为部署的vps地址) <code> npm adduser --registry http://localhost:4873 npm publish --registry http://localhost:4873 npm info simperatorbase --registry http://localhost:4873 npm install <your-package-name> --registry http://localhost:4873 // 从私人服务器查看最新的一个版本 npm show huahets version --registry http://localhost:4873 </code> 在新的计算机登录进去的命令为,用户为++mai|123456++ npm login --registry http://vpspi:4873 查看服务器上部署的包 http://vpsnote:4873/ [[https://docs.npmjs.com/creating-and-publishing-private-packages|Creating and publishing private packages]] 需要允许外部访问,打开文件 .config/verdaccio/config.yaml 或者 ~/verdaccio/config.yaml 尾部添加代码 <code> listen: - 0.0.0.0:4873 </code>
it/node/npmpackage.txt
· 最后更改: 2024-07-13 03:59 由
goldentianya
回到顶部