webpack gl-matrix 作为外部
webpack gl-matrix as an external
我正在使用 gl-matrix 作为依赖项编写一个库。我正在使用 webpack 输出 src 并想从我的代码中排除 gl-matrix 部分,但将其列为依赖项。
但事实证明我只能将 gl-matrix 打包到 lib 中,或者有错误说来自 gl-matrix 的对象,如 vec3
在我的 lib 中未定义。有什么想法吗?
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(我的库)
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');
externals: {
'gl-matrix': {
commonjs: 'gl-matrix',
commonjs2: 'gl-matrix',
amd: 'gl-matrix'
}
}
外部字典名称应与库名称匹配
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
attr 指向它自己,所以在根字段中使用 'window' 是更好的选择,它不需要声明不再是统一变量。
我正在使用 gl-matrix 作为依赖项编写一个库。我正在使用 webpack 输出 src 并想从我的代码中排除 gl-matrix 部分,但将其列为依赖项。
但事实证明我只能将 gl-matrix 打包到 lib 中,或者有错误说来自 gl-matrix 的对象,如 vec3
在我的 lib 中未定义。有什么想法吗?
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(我的库)
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');
externals: {
'gl-matrix': {
commonjs: 'gl-matrix',
commonjs2: 'gl-matrix',
amd: 'gl-matrix'
}
}
外部字典名称应与库名称匹配
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
attr 指向它自己,所以在根字段中使用 'window' 是更好的选择,它不需要声明不再是统一变量。