问题描述
我一直在制作我自己的 JS 库,我正在尝试用 webpack 重新制作它。
在我的原始文件中,我将原型函数用于变量构造函数,如下所示:
Date.prototype.fooFunc = function(e){
// return something
};
String.prototype.barFunc = function(e) {
// return something
};
var Library = function(e){
var date = new Date();
this result = date.fooFunc().barfunc();
};
并且变量构造函数原型函数的代码行变得很长。 所以我试图为原型函数制作一个单独的文件。
但是我不知道如何在 JS 模块系统中导出预定义变量的属性。 我怎样才能穿过它?
解决了
原型.js
if ( typeof Date.prototype.myFunc == undefined ) {
var foo = new Date();
return foo.something();
};
// no export
webpack.config.js
module.exports = (env, options) => {
const config = {
target: 'web',
entry: {
'my-library': [
'./src/prototypes.js',
'./src/index.js'
],
},
output: {
filename: '[name].min.js',
library: 'myLibrary',
libraryTarget: 'var',
libraryExport: 'default',
path: path.resolve(__dirname, 'dist')
},
optimization: {
splitChunks: {
cacheGroups: {
commons: {
test: /[\\/]node_modules[\\/]/,
name: 'vendors',
chunks: 'all'
}
}
}
},
}
return config;
}
1楼
BrunoFenzl
2
已采纳
2019-02-25 08:02:05
您不需要导出原型方法。 一旦将它们添加到对象中,它们就成为对象的组成部分,并且始终可以访问。
您必须在要扩展的对象之后以及在构建过程中的其他地方使用它们之前,将文件与原型扩展一起包含在内。
如果您仅扩展 javascript 本机对象(如 Date 和 Math),请将您的扩展文件作为构建中的第一个。