问题描述
我希望将出于开发目的的“登录”代码从多个微型应用程序提取为<LoginProvider />
到单个NPM包中。提供程序本身不是UI元素,只是跟踪我们从Auth0创建/GET
然后在后端创建/GET
以加载用户数据的过程的一种方式。我正在使用汇总从Typescript转换为ES5。
我以前没有制作过NPM软件包,因此我对最佳做法有些不确定。我想我想拥有一个具有“之前”授权和“之后”授权状态的本地沙箱,以便可以证明此提供程序可与UI元素一起使用。还是一个坏主意?如果这是一个坏主意,这是npm link
的目的吗?
我不明白的一件事是如何构建此Provider,而又不暴露使用package json实际不需要的dep如webpack / babel或create-react-app。所有的教程都是关于制作UI组件的,我没有做,因为我不想公开UI元素的“沙盒”。
我的package.json当前看起来像:
{
"name": "loginas","version": "0.0.0","description": "LoginAs provider for development","main": "index.tsx","module": "build/bundle.loginas.js","scripts": {
"build": "rm -rf build && rollup -c","lint": "eslint","lint:fix": "eslint './src/**/*.{ts,tsx}' --fix","prettier": "prettier","prettier:write": "npm run prettier","test": "test","start": "rollup -c -w"
},"repository": {
"type": "git","url": "utils"
},"author": "Me","license": "ISC","peerDependencies": {
"react": "^16.8.0","react-dom": "^16.8.0"
},"devDependencies": {
"@rollup/plugin-node-resolve": "^9.0.0","@types/react": "^16.9.49","@types/react-dom": "^16.9.8","@typescript-eslint/eslint-plugin": "^4.1.1","@typescript-eslint/parser": "^4.1.1","babel-core": "^6.26.3","babel-runtime": "^6.26.0","eslint": "^7.9.0","eslint-config-prettier": "^6.11.0","eslint-config-standard-with-typescript": "^19.0.1","eslint-plugin-import": "^2.22.0","eslint-plugin-node": "^11.1.0","eslint-plugin-prettier": "^3.1.4","eslint-plugin-promise": "^4.2.1","eslint-plugin-react": "^7.20.6","eslint-plugin-react-hooks": "^4.1.2","eslint-plugin-standard": "^4.0.1","husky": "^4.3.0","lint-staged": "^10.3.0","prettier": "^2.1.1","react": "^16.13.1","react-dom": "^16.13.1","rollup": "^2.26.11","rollup-plugin-peer-deps-external": "^2.2.3","rollup-plugin-typescript2": "^0.27.2","typescript": "^4.0.2"
}
}
到目前为止,我无法在浏览器中运行任何反应代码。下一步,这样做又有什么好处,又不增加部门?
例如,我应该只创建一个具有自己的package.json并带有create-react-app的“沙盒”目录,但将沙箱排除在汇总之外吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)