// Vue组件要暴露一个有install函数的对象或者暴露一个函数作为install函数
const files = require.context('./components', true)
const install = function (Vue) {
files.keys().forEach(key => {
const fileContext = files(key).default
Vue.component(fileContext.name, fileContext)
})
}
// 判断是否直接引入文件,如果是,就不用调用vue.use,手动调用install并传入Vue
if (typeof window !== 'undefined' && window.Vue) {
install(window.Vue)
}
export default {
install
}
{
// 这里的名字会被作为npm包名
"name": "@zhiq1/mcui",
"version": "0.1.0",
"private": true,
// 入口文件,在被import时,会以此文件作为入口,要与build:lib中的name对应起来
//如果不配置,我们在其他项目中就不用import XX from '包名'来引用了,只能以包名作为起点来指定相对的路径
"main": "dist/McUi.umd.min.js",
// 要打包的目录和文件,package.json会被默认打包
"files": [
"dist",
"src/packages"
],
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
// vue-cli内置的打包lib的方法,指定name替换项目名称。最终产生的文件名即为这里指定的name
"build:lib": "vue-cli-service build --target lib --name mcui src/packages/index.js"
},
// 项目基础依赖,避免核心依赖重复下载
"peerDependencies": {
"vue": "^2.6.11",
"element-ui": "^2.13.1"
},
"dependencies": {
"@meicloud/simple-table": "^1.0.0",
// npm pack打本地包后执行npm install zhiq1-mcui-0.1.0.tgz后会生成这个依赖,node_modules里会安装@zhiq1/mcui文件
"@zhiq1/mcui": "file:zhiq1-mcui-0.1.0.tgz",
"core-js": "^3.6.5",
"vue": "^2.6.11",
"vue-router": "^3.2.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-standard": "^5.1.2",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-import": "^2.20.2",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.0",
"eslint-plugin-vue": "^6.2.2",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"vue-template-compiler": "^2.6.11"
},
"author": {
"name": "zhiq",
"github": "https://gitee.com/zhiq1/vue_components"
}
}