基于上篇我们讲了 在window下搭建Vue.Js开发环境

我们可以开发自己的vue.js插件发布到npm上,供大家下载使用。

1.首先打开cmd命令窗口,进入我们的工作目录下

执行 cd E:\vue

2.使用webpack的简单模板创建我们的项目,比如vue-dialog-rexsheng

vue init webpack-simple vue-dialog-rexsheng

如下图,输入项目名称,项目描述,项目作者,认证单位,sass选择N

创建成功后,我们会发现工作目录e:/vue下多了一个项目目录vue-dialog-rexsheng

3.进入项目目录vue-dialog-rexsheng下,

cd vue-dialog-rexsheng

我们使用visual studio code做为开发工具,在vscode里打开这个项目,项目结构如图

4.项目结构建好后,下面开始开发

先安装项目的依赖包

npm install  (若网络不好可使用淘宝镜像进行安装cnpm install,安装参考 在window下搭建Vue.Js开发环境

启动项目 npm run dev

浏览器打开网址 http://localhost:8081/ 如上图的蓝色字体,端口根据大家电脑实际情况可能不同

项目已经运行起来了,表明项目一开始是ok的,下面进行插件的具体开发

5.vscode里,src目录下新建文件夹lib,lib下新建文件index.js

index.js里输入插件的安装脚本如下图

插件如何开发请参考 https://cn.vuejs.org/v2/guide/plugins.html

6.打包配置

修改文件webpack.config.js如下图,

  1. var path = require('path')
  2. var webpack = require('webpack')
  3.  
  4. module.exports = {
  5. entry: './src/lib/index.js',//资源入口文件
  6. output: {
  7. path: path.resolve(__dirname, './dist'),//打包输出目录
  8. publicPath: '/dist/',//公共资源路径
  9. filename: 'dialog.js',//输出的主文件
  10. library: 'vuedialogrexsheng',//库名,此名称用于require('vuedialogrexsheng')
  11. libraryTarget: 'umd',//目标平台,libraryTarget会生成不同umd的代码,可以只是commonjs标准的,也可以是指amd标准的,也可以只是通过script标签引入的。
  12. umdNamedDefine: true//会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define。
  13. },
  14. module: {
  15. rules: [
  16. {
  17. test: /\.css$/,
  18. use: [
  19. 'vue-style-loader',
  20. 'css-loader'
  21. ],
  22. }, {
  23. test: /\.vue$/,
  24. loader: 'vue-loader',
  25. options: {
  26. loaders: {
  27. }
  28. // other vue-loader options go here
  29. }
  30. },
  31. {
  32. test: /\.js$/,
  33. loader: 'babel-loader',
  34. exclude: /node_modules/
  35. },
  36. {
  37. test: /\.(png|jpg|gif|svg)$/,
  38. loader: 'file-loader',
  39. options: {
  40. name: '[name].[ext]?[hash]'
  41. }
  42. },
  43. {
  44. test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
  45. loader: 'file-loader',
  46. options: {
  47. limit: 10000,
  48. name: 'fonts/[name].[hash:7].[ext]'
  49. }
  50. }
  51. ]
  52. },
  53. resolve: {
  54. alias: {
  55. 'vue$': 'vue/dist/vue.esm.js'
  56. },
  57. extensions: ['*', '.js', '.vue', '.json']
  58. },
  59. devServer: {
  60. historyApiFallback: true,
  61. noInfo: true,
  62. overlay: true
  63. },
  64. performance: {
  65. hints: false
  66. },
  67. devtool: '#eval-source-map'
  68. }
  69.  
  70. if (process.env.NODE_ENV === 'production') {
  71. module.exports.devtool = '#source-map'
  72. // http://vue-loader.vuejs.org/en/workflow/production.html
  73. module.exports.plugins = (module.exports.plugins || []).concat([
  74. new webpack.DefinePlugin({
  75. 'process.env': {
  76. NODE_ENV: '"production"'
  77. }
  78. }),
  79. new webpack.optimize.UglifyJsPlugin({
  80. sourceMap: true,
  81. compress: {
  82. warnings: false
  83. }
  84. }),
  85. new webpack.LoaderOptionsPlugin({
  86. minimize: true
  87. })
  88. ])
  89. }

修改package.json,

private :false,

main: '引用时指向的文件'

7.打包编译

npm run build

在项目dist目录下多了这两个文件,.map文件是调试用的,这里可忽略

8.如果你已经有npm用户账户了,可忽略这一步的用户注册

到网址 https://www.npmjs.com/ 进行新用户注册

注册成功后,记住用户名及密码

9.项目目录下新建文件 .npmignore,里面写入需要忽略的文件

实际发布的文件只需要dist/dialog.js,package.json ,README.md(可选,里面写上插件如何使用)

10.项目目录下执行

npm whoami

如果出现以上提示,表明本机从未添加过用户或者用户未登陆,

1) 添加新用户需要执行

npm adduser

2) 本机以前登陆过账户,现在重新登陆使用

npm login

11.发布项目

npm publish

这时候,到npm官网里搜索我们的项目vue-dialog-rexsheng

会发现我们的项目已经能够搜到了

现在,你可以在任何项目里使用npm安装这个插件了,npm install  vue-dialog-rexsheng --save-dev

安装完之后,main.js中引用

import dlg from 'vue-dialog-rexsheng';

Vue.use(dlg);

Vue.Js添加自定义插件的更多相关文章

  1. Vue.js devtool插件安装后无法使用的解决办法

    初次使用Vue.js devtool插件的新人在安装了Vue.js devtool插件后,都会经常有一个疑问.我在chrome浏览器里面已经成功安装好Vue.js devtool插件,怎么点击后提示v ...

  2. chrome调试vue.js的插件:vue.js devtools

    1.什么是vue.js devtools? vue.js devtools是chrome的一款插件,用来调试vue的一款神器. 2.为什么下载vue.js devtools? 由于vue是数据驱动的, ...

  3. Vue.js devtool插件下载安装及后续问题解决

    在中国,你是无法使用谷歌应用商店,所以你下载插件,要使用一些别的手段,一种是下载源码编译,另一种是通过第三方网站.第一种不适合小白,所以现在介绍第二组. 下载插件网站 国外网站:https://www ...

  4. 解决游览器安装Vue.js devtools插件无效的问题

    一: 打开自己写的一个vue.js网页,发现这个图标并没有亮起来,还是灰色 解决方案:  1.我们先看看Vue.js devtools是否生效,打开Bilibili(https://www.bilib ...

  5. VSCODE开发VUE.JS前端插件

    VUE前端插件.转载自:https://www.cnblogs.com/karthuslorin/p/8577224.html vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscod ...

  6. vscode vue js 开发插件配置

    安装 vetur { // 自动补全触发范围---双引号内的字符串也可以触发补全 "editor.quickSuggestions": { "other": t ...

  7. Vue.js devtool插件安装后无法使用的解决办法【最简单有效的解决方法】

    在开发vue相关的项目时,使用vue devtools工具是一件极其有趣的事,你所有的操作都马上给你实时反馈. 然而有时候安装好的工具,在chrome中不显示. 在网上找过多次,一直没有找到有效解决方 ...

  8. vue.js devtools-------调试vue.js的开发者插件

    vue.js devtools插件: 作用: 以往我们在进行测试代码的时候,直接在console进行查看,其实这个插件雷同于控制台,只不过在vue里面,将需要查看的数据存放在一个变量里面了~ 效果图: ...

  9. vue.js过度&动画、混入&插件

    1.vue  过度动画 1.过度 Vue 在插入.更新或者移除 DOM 时,提供多种不同方式的应用过渡效果.Vue 提供了内置的过渡封装组件,该组件用于包裹要实现过渡效果的组件. 语法格式: < ...

随机推荐

  1. Android 冷启动时间优化

    一 下载工具: 1.MaterialColdStart https://github.com/DreaminginCodeZH/MaterialColdStart 2.AndroidSVGScript ...

  2. mysql客户端工具

    MySQL 数据库不仅提供了数据库的服务器端应用程序,同时还提供了大量的客户端工具程序,如 mysql,mysqladmin,mysqldump 等等,都是大家所熟悉的.虽然有些人对这些工具的功能都已 ...

  3. MySQL外键和高级查询(连接查询、联合查询、子查询、去重查询)

    MySQL的外键 什么是外键,很简单保持数据一致性的一个约束键.如果你有两张表,第一张是学生表,第二张表是一个成绩表,我们来看看保持数据一致性,其实在Django等框架的模型中中也能做关联获取对象. ...

  4. yii---where or该如何使用

    今天调试YII项目的时候,遇到一个奇葩的事儿,在调试 where or 查询的时候:调试语句是这样: $str = static::find()->where(['or','username' ...

  5. 9.7 Django 书单列表页面

    昨天的迭代版本,增加了编辑出版社,编辑列表,增添了返回页面! 具体的看 github : https://github.com/TrueNewBee/pythonDemo 看一下效果图: 整体来说还是 ...

  6. 前端基础进阶之Promise

    前言 Promise的重要性我认为我没有必要多讲,概括起来说就是必须得掌握,而且还要掌握透彻.这篇文章的开头,主要跟大家分析一下,为什么会有Promise出现. 在实际的使用当中,有非常多的应用场景我 ...

  7. cp命令取消提示的方法

    Linux默认cp命令带参数-i如果有重复的文件会提示覆盖 查看cp别名 在大量复制的时候这个提示不友好,在脚本写复制命令也无法使用交互式输入 解决办法 1,修改别名 vi ~/.bashrc 注释掉 ...

  8. Saltstack之api

    Salt-API 1,htps证书 2,配置文件 3,验证.使用PAM验证 4,启动salt-api 安装salt-api yum -y install salt-api 创建用户 useradd - ...

  9. POJ-1157 LITTLE SHOP OF FLOWERS(动态规划)

    LITTLE SHOP OF FLOWERS Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 19877 Accepted: 91 ...

  10. HUST 1605 Gene recombination(广搜,位运算)

    题目描述 As a gene engineer of a gene engineering project, Enigma encountered a puzzle about gene recomb ...