我正在使用gl-matrix作为依赖项编写库。我正在使用webpack输出src,并希望从我的代码中排除gl-matrix部分,但将其列为依赖项。
但事实证明我只能将gl-matrix打包到lib中,或者有错误说我的lib中未定义像vec3
这样的gl-matrix对象。有什么想法吗?
webpack.config.js
module.exports = {
//...
output: {
filename: 'minimal-gltf-loader.js',
path: path.resolve(__dirname, 'build'),
library: 'MinimalGLTFLoader',
libraryTarget: 'umd'
},
externals: {
glMatrix: {
commonjs: 'gl-matrix',
commonjs2: 'gl-matrix',
amd: 'gl-matrix'
}
}
}
minimal-gltf-loader.js(我的lib)
import {vec3, vec4, quat, mat4} from 'gl-matrix';
//...
export { MinimalGLTFLoader };
应用
import {vec3, vec4, quat, mat4} from 'gl-matrix';
var mgl = require('../build/minimal-gltf-loader.js');
答案 0 :(得分:0)
externals: {
'gl-matrix': {
commonjs: 'gl-matrix',
commonjs2: 'gl-matrix',
amd: 'gl-matrix'
}
}
外部字典名称应与lib的名称匹配
答案 1 :(得分:0)
externals: [
{
'gl-matrix': {
root: 'window',
commonjs: 'gl-matrix',
commonjs2: 'gl-matrix',
amd: 'gl-matrix'
}
}
]
如果通过脚本标签导入gl-matrix,它将是几个全局变量,例如vec3
,mat4
,而不是gl-matrix.vec3
,gl-matrix.mat4
。
因此,您可以将它们设置为一个变量,然后将此变量用作webpack外部根配置。
然后我发现window
对象具有指向自己的window
属性,因此在根字段中使用'window'是一个更好的选择,它不再需要声明一个统一变量了