@marcosmura你会恨我的 :(
因此,您刚刚对外部进行了更改,现在使用 Vue 和 VueMaterial 从
我现在有一个可行的解决方案,我认为这是正确的解决方案。
webpack 文档还有很多不足之处,但在阅读完整的配置文档后,这里是适用于模块导入和脚本标签的语法:
externals: {
vue: {
commonjs: "vue",
commonjs2: "vue",
amd: "vue",
root: "Vue",
}
}
当使用导出类型umd
,我们可以为每个类型指定外部名称,允许我们通常使用vue
进行模块导入,使用Vue
进行脚本标签使用。
这有意义吗? 我现在可以理解讨厌 javascript 构建环境了......事情似乎从来没有像它们第一次出现的那样简单。 我很抱歉上次给了你一个半生不熟的解决方案。
另外,我认为另一个问题是相关的。 在 index.js 中,您设置 window.VueMaterial。
我无法在整个源代码中看到您再次使用它的任何地方; 看起来您的编码与第一个版本非常接近。
这在其他 Vue 插件中似乎并不常见。 它违背了使用 webpack 和模块的目的之一:保持内容被包含。 Webpack 和朋友负责将 VueMaterial 放到正确的位置。
我的猜测是,这只是一段被遗忘的代码,可能应该删除,因为您当前的 webpack 负责使该变量可用。
外部技巧完美无缺!
创建 window 变量是为了与独立构建一起使用,以使用 Vue.use(VueMaterial)。
但是随着新的外部因素,这变得过时了:
externals: {
vue: {
commonjs: 'vue',
commonjs2: 'vue',
amd: 'vue',
root: 'Vue',
var: 'Vue'
}
}
非常感谢@korylprince!!!
最有用的评论
我现在有一个可行的解决方案,我认为这是正确的解决方案。
webpack 文档还有很多不足之处,但在阅读完整的配置文档后,这里是适用于模块导入和脚本标签的语法:
当使用导出类型
umd
,我们可以为每个类型指定外部名称,允许我们通常使用vue
进行模块导入,使用Vue
进行脚本标签使用。这有意义吗? 我现在可以理解讨厌 javascript 构建环境了......事情似乎从来没有像它们第一次出现的那样简单。 我很抱歉上次给了你一个半生不熟的解决方案。