偶然发现 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 项目中,不管在什么地方引入文件都是表现正常的,可以直接使用。
请问是什么原因导致了这个问题出现呢。