首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Webpack的生产构建中排除CommonJS库(vue-cli)

如何从Webpack的生产构建中排除CommonJS库(vue-cli)
EN

Stack Overflow用户
提问于 2020-09-19 10:32:37
回答 1查看 419关注 0票数 1

通过使用Webpack配置vue,我成功地做到了这一点。

首先,我在html文件中包含了CDN for Vue。

index.html

代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script>

然后我修改了webpack的配置

vue.config.js

代码语言:javascript
复制
module.exports = {
  configureWebpack: {
    // ...
    externals: {
      vue: 'Vue',
    }
    // ...
  },
}

一切都完美无缺。

但是当我尝试使用vue-class-componentvue-property-decorator时,它并没有像预期的那样起作用

index.html

代码语言:javascript
复制
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-class-component@7.2.5"></script>
<script src="https://cdn.jsdelivr.net/npm/vue-property-decorator@9.0.0"></script>

vue.config.js

代码语言:javascript
复制
module.exports = {
  configureWebpack: {
    // ...
    externals: {
      vue: 'Vue',
      'vue-class-component': 'VueClassComponent',
      'vue-property-decorator': 'VuePropertyDecorator',
    }
    // ...
  },
}

我注意到这些文件的名称不同,以.common.js.umd.js结尾

代码语言:javascript
复制
vue-class-component.common.js
vue-property-decorator.umd.js

然后我试着

vue.config.js

代码语言:javascript
复制
module.exports = {
  configureWebpack: {
    // ...
    externals: {
      vue: 'Vue',
      'vue-class-component': 'commonjs2 vue-class-component',
      'vue-property-decorator': 'umd vue-property-decorator',
    }
    // ...
  },
}

但是它也不起作用。

下面是我如何在我的src/中导入这些内容。脚本是用打字本写的。

代码语言:javascript
复制
import Vue from 'vue'

// ...

import { Component } from 'vue-property-decorator'

有人知道如何处理webpack的externals.common.js.umd.js?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-19 11:12:08

我认为问题不一定在Webpack的配置中.

如果我尝试加载https://cdn.jsdelivr.net/npm/vue-class-component@7.2.5,它会给我Original file: /npm/vue-class-component@7.2.5/dist/vue-class-component.common.js,即CommonJS构建浏览器不会处理这个问题。尝试使用链接到像https://cdn.jsdelivr.net/npm/vue-class-component@7.2.6/dist/vue-class-component.min.js这样的“浏览器兼容”构建

vue-property-decorator应该很好,因为UMD模块应该在浏览器中工作.

顺便问一下,这一切有什么意义?为什么不让Webpack去做呢?它总是最好下载一个大的JS文件然后多个更小的..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63967758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档