vue插件开发流程详解-从开发到发布至npm(二)

 

这个项目结构直接用 vue init webapck vue-upload  ,脚手架生的模版,大架构我基本没动,添加了一点自己的配置文件和新加了自己的文件夹。如下:

2.打包插件源码的配置文件

复制代码
var path = require('path') var webpack = require('webpack')  module.exports = {   entry: './src/plugin/ajax-upload.js',   output: {     path: path.resolve(__dirname, '../dist'),     publicPath: '/dist/',     filename: 'vueAjaxUpload.js',     library: 'vueAjaxUpload', // library指定的就是你使用require时的模块名,这里便是require("vueAjaxUpload")     libraryTarget: 'umd', //libraryTarget会生成不同umd的代码,可以只是commonjs标准的,也可以是指amd标准的,也可以只是通过script标签引入的。     umdNamedDefine: true // 会对 UMD 的构建过程中的 AMD 模块进行命名。否则就使用匿名的 define。   },   module: {     rules: [       {         test: /\.css$/,         use: [           'vue-style-loader',           'css-loader'         ],       },      {         test: /\.vue$/,         loader: 'vue-loader',         options: {           loaders: {           }           // other vue-loader options go here        }       },       {         test: /\.js$/,         loader: 'babel-loader',         exclude: /node_modules/       },       {         test: /\.(png|jpg|gif|svg)$/,         loader: 'file-loader',         options: {           name: '[name].[ext]?[hash]'         }       }     ]   },   resolve: {     alias: {       'vue$': 'vue/dist/vue.esm.js'     },     extensions: ['*', '.js', '.vue', '.json']   },   devServer: {     historyApiFallback: true,     noInfo: true,     overlay: true   },   performance: {     hints: false   },   devtool: '#eval-source-map' }  if (process.env.NODE_ENV === 'production') {   module.exports.devtool = '#source-map'  // http://vue-loader.vuejs.org/en/workflow/production.html  module.exports.plugins = (module.exports.plugins || []).concat([     new webpack.DefinePlugin({       'process.env': {         NODE_ENV: '"production"'       }     }),     new webpack.optimize.UglifyJsPlugin({       sourceMap: true,       compress: {         warnings: false       }     }),     new webpack.LoaderOptionsPlugin({       minimize: true     })   ]) }
复制代码

上面的配置文件也很简单,主要就是入口文件和输出文件,上面红色标记的部分,我们需要经常修改的也是这个两个参数,下面的打包规则我们可以不用多管。

3.package.json 的执行脚本的修改。

4.开发插件

 在plugin下,新建ajax-upload.js ajax-upload.vue。

ajax-upload.js

复制代码
import upload from './ajax-upload.vue' let ajaxUpload = {} ajaxUpload.install = 
                        
关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信