electron-vue,引入模块展现出的奇怪问题

2022-07-14 11:45:53 +08:00
 BenchWidth

偶然发现 electron-vue 下引用 node_modules 下的文件与直接引用文件夹中的文件表现不一致。文件内容都是 umd.js ,

(function(root, factory) {
  if (typeof module === 'object' && typeof module.exports === 'object') {
    console.log('是 commonjs 模块规范,nodejs 环境')
    module.exports = factory();
  } else if (typeof define === 'function' && define.amd) {
    console.log('是 AMD 模块规范,如 require.js')
    define(factory())
  } else if (typeof define === 'function' && define.cmd) {
    console.log('是 CMD 模块规范,如 sea.js')
    define(function(require, exports, module) {
      module.exports = factory()
    })
  } else {
    console.log('没有模块环境,直接挂载在全局对象上')
    if(root){
      root.umdModule = factory();
    }
  }

}(this, function() {
  return {
    name: '我是一个 umd 模块'
  }
}))

从 node_modules 引入的可以直接使用。

但是从普通文件夹中引入的文件。this 是 undefined ,exports 未定义,define 未定义,所有的环境都不匹配。

在新建的 webpack 项目中,不管在什么地方引入文件都是表现正常的,可以直接使用。

请问是什么原因导致了这个问题出现呢。

673 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/866102

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX