npm 发布公共组件库项目结构以及index.js 配置问题

1.首先说项目结构:
在这里插入图片描述
2.package.json 主要配置
在这里插入图片描述
version :版本号, 没次 nppm publish 要修改
private:要改为 false
main:入口文件地址

  1. 要发布的组件需要 export
    主要代码:
 `import EgMenu from "./EgMenu.vue";
// 为组件添加 install 方法,用于按需引入
EgMenu.install = function(Vue) {
  Vue.component(EgMenu.name, EgMenu);
};
export default EgMenu;`
  1. 全局的一个index.js 抛出所有组件
// 导入单个组件
import EgButton from "./EgButton/index.js";
import EgCheckbox from "./EgCheckbox/index.js";
import { default as EgMessage } from "./EgMessage";

// 保存 便于遍历 这里只放自定义的插件 (修改时间2019-8-23)
const components = [
  EgButton,
  EgCheckbox,
];

const install = function(Vue) {
  if (install.installed) return;
  install.installed = true;

  components.map(component => {
    Vue.component(component.name, component);
  });
  Vue.prototype.$EgMessage = EgMessage;
};

// const EgAdapter = {};

// EgAdapter.install = Vue => {
//   if (EgAdapter.install.installed) return;
//   components.map(component => {
//     Vue.component(component.name, component);
//   });
//   Vue.prototype.$EgMessage = EgMessage;
// };

if (typeof window !== "undefined" && window.Vue) {
  install(window.Vue);
}

// if (typeof window !== "undefined" && window.Vue) {
//   EgAdapter.install(window.Vue);
// }

// 这里可以用es6的解构语法导入组件 大概就是这个意思 毕竟没有用插件
export {
  EgButton,
  EgCheckbox,
  EgMessage
};
export default {
  install
};

  1. 发布流程
    npm login
    输入 用户名 密码
    npm publish
    ok
  2. 使用:
    在mainjs 中
    import install from “./packages/index.js”; // 也可以单个引入
    Vue.use(install);
    这样就可以直接使用组件了
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是按照要求搭建Vue脚手架工程的具体步骤: 1. 安装Vue CLI:使用npm命令安装Vue CLI。输入以下命令并按回车键执行: ``` npm install -g @vue/cli ``` 2. 创建Vue项目:使用Vue CLI创建一个新的Vue项目。输入以下命令并按回车键执行: ``` vue create my-app ``` 这里的“my-app”是你自己设置的项目名称。在创建项目过程中,你可以选择使用默认的配置或者自定义配置。 3. 创建子组件:在src/components文件夹下创建5个子组件,其中两个组件名为Student和School,并在App.vue组件中引入并管理它们。 4. 在main.js中引入App组件和Vue:打开src/main.js文件,引入App.vue组件和Vue,并将App组件挂载到id为“app”的DOM元素上。 ```javascript import Vue from 'vue' import App from './App.vue' Vue.config.productionTip = false new Vue({ render: h => h(App), }).$mount('#app') ``` 5. 在index.html中引入main.js:打开public/index.html文件,引入main.js文件。 ```html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>my-app</title> <link rel="icon" href="<%= BASE_URL %>favicon.ico"> </head> <body> <div id="app"></div> <script src="./src/main.js"></script> </body> </html> ``` 6. 在至少两个组件中采用CSS样式,并至少引入一个静态资源:在组件中使用style标签添加CSS样式,并在需要的地方使用img标签引入静态资源。 7. 组件中data数据不少于4个,所有组件必须使用methods配置项:在组件中定义data选项,并至少定义4个数据属性。同时,为了响应用户交互操作,所有组件必须使用methods配置项。 8. 在组件中用到计算属性、监视属性、过滤器、数据绑定、事件处理、钩子函数不少于一次:在组件中使用计算属性computed,监视属性watch,过滤器filters,数据绑定v-bind,事件处理v-on,钩子函数mounted等Vue特性。可以根据具体需求选用以上特性。 9. 项目结构按如下方式创建: ``` my-app/ node_modules/ public/ favicon.ico index.html src/ components/ Student.vue School.vue ... App.vue main.js ``` 以上就是按照要求搭建Vue脚手架工程的具体步骤和要求。希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值