我正在开发一个npm模块,我希望它可以被所有类型的js客户端应用程序导入。
现在我尝试了export default myObject
和module.exports = myObject
问题是export default
似乎仅在es6应用中可用,并且module.exports
在纯javascript中不起作用,因为未定义模块。
所以我希望我的模块可以访问,如果客户端使用React,Angular,Vue,纯Javascript或其他...我的模块只是一个内部有纯javascript函数列表的对象。这里没有棘手的部分。
有没有办法确保模块可用,无论客户端将使用哪种技术?
答案 0 :(得分:0)
主题现在有点老了,以防有人遇到同样的问题。
我认为Yury建议使用UMD。经过一些不成功的尝试后,我最终直接使用了webpack。从来不知道他正在为我们提供这些如此简单的UMD工具。这是我的配置文件。
我导出两个配置以同时构建普通版本和缩小版本。
module.exports = [
{
entry: path.resolve(__dirname, "src/myLib.js"),
output: {
path: path.resolve(__dirname, "dist"),
filename: "myLib.js",
library: 'myLib',
libraryTarget: "umd",
umdNamedDefine: true,
},
mode: "development",
module: config.module,
resolve: config.resolve,
plugins: config.plugins,
},
{
entry: path.resolve(__dirname, "src/myLib.js"),
output: {
path: path.resolve(__dirname, "dist"),
filename: "myLib.min.js",
library: 'myLib',
libraryTarget: "umd",
umdNamedDefine: true,
},
mode: "production",
module: config.module,
resolve: config.resolve,
plugins: config.plugins,
},
];