偶然发现 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 项目中,不管在什么地方引入文件都是表现正常的,可以直接使用。
请问是什么原因导致了这个问题出现呢。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.