我试图在npm上的一个公共包中导出两个web组件,使用Vite和TypeScript。
Vite有一个运行良好的库模式(https://vitejs.dev/guide/build.html#library-mode)。ESM和UMD文件都被转移到我的/dist目录中。我的问题是如何导出入口点文件中的web组件。
我有一个名为export.js的入口文件
import AwesomeHeader from './components/AwesomeHeader.vue'
import AwesomeFooter from './components/AwesomeFooter.vue'
export default { // I feel like the problem is here.
components: {
AwesomeHeader: AwesomeHeader,
AwesomeFooter: AwesomeFooter,
}
}我的想法是,我将npm publish这个项目并像这样使用它。
npm i @sparkyspider/awesome-components #(ficticious example)import {AwesomeHeader, AwesomeFooter} from '@sparkyspider/awesome-components' // does not find(AwesomeHeader和AwesomeFooter在node_module中不作为导出找到,即使引用/找到了JavaScript文件)
下面是我的package.json:
{
"name": "@sparkyspider/awesome-components",
"version": "1.0.8",
"files": [
"dist"
],
"main": "./dist/awesome-components.umd.js",
"module": "./dist/awesome-components.es.js",
"exports": {
".": {
"import": "./dist/awesome-components.es.js",
"require": "./dist/awesome-components.umd.js"
}
},
"scripts": {
"dev": "vite",
"build": "vue-tsc --noEmit && vite build",
"serve": "vite preview"
},
"dependencies": {
"vue": "^3.0.5"
},
"devDependencies": {
"@vitejs/plugin-vue": "^1.2.2",
"@vue/compiler-sfc": "^3.0.5",
"typescript": "^4.1.3",
"vite": "^2.3.3",
"vue-tsc": "^0.0.24"
},
}发布于 2021-05-20 11:01:49
您将对象{ component: ... }作为默认导出,而不是导出要导入的AwesomeHeader和AwesomeFooter。
export { AwesomeHeader, AwesomeFooter } in export.js将有效。
更多关于出口:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export
而且您无法销毁默认导出:https://stackoverflow.com/a/43987935/8810271
https://stackoverflow.com/questions/67616851
复制相似问题