繁体   English   中英

用于将vue组件发布到npm包中的Webpack配置

[英]Webpack config for publishing vue component into an npm package

这是该组件的主要js代码

import './sass/main.scss'
import Vlider from './Vlider.vue'

function install(Vue) {
    if (install.installed) return;
    install.installed = true;
    Vue.component('vlider', Vlider);
}

const plugin = {
    install,
};

let GlobalVue = null;
if (typeof window !== 'undefined') {
    GlobalVue = window.Vue;
} else if (typeof global !== 'undefined') {
    GlobalVue = global.Vue;
}
if (GlobalVue) {
    GlobalVue.use(plugin);
}

Vlider.install = install;

export default Vlider

谁能帮我Webpack配置吗? 我需要从此index.js输出4个文件

  1. DIST / vlider.umd.js
  2. DIST / vlider.esm.js
  3. DIST / vlider.min.js
  4. vlider.css

这样它可以支持package.json多个入口点

"main": "dist/vlider.umd.js",
"module": "dist/vlider.esm.js",
"unpkg": "dist/vlider.min.js",
"browser": "src/vlider.vue"

这是我第一次处理webpack,因此将非常感谢您的帮助

Webpack不支持esmodule作为输出目标。 您可以创建commonjs模块或umd/iife模块。

如果您需要ESModule作为目标,请考虑使用Rollup.js 通常,当需要将库和Webpack捆绑在一起进行应用程序捆绑时,应该使用Rollup (注意:汇总很棒,但是TypeScript + .Vue文件+基于类的vue组件语法不起作用。)

此外,无论Webpack或汇总如何,都可以使用基于数组/多目标的导出。 请参阅以下链接以获取更多详细信息:

Webpack: https ://webpack.js.org/concepts/targets/#multiple-targets

汇总: https//rollupjs.org/guide/en#configuration-files

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM