首页 > 解决方案 > 包含使用 webpack 编译的包以在另一个 js 文件中使用

问题描述

我的应用程序具有以下结构:

index.js

const app = require("./app")
exports.api = app(...)

应用程序.js

//all the imports goes here
//and exporting the main function
module.exports = app => {...}

现在我需要app.js与 webpack 捆绑,但index.js必须保持原样

问题是,捆绑后app.js,我怎样才能从require它的主要功能?appindex.js

在 webpacking 之后app.js,我收到错误消息index.js,说“应用程序不是一个函数”,这是有道理的,因为 app.js 内容现在包装在 webpack 员工中。

任何建议都非常感谢。

标签: javascriptnode.jswebpack

解决方案


您的“应用程序”包需要导出为commonjs

module.exports = {
  //...
  output: {
    library: 'app',
    libraryTarget: 'commonjs',
  }
};

您的入口点的返回值将使用 output.library 值分配给导出对象。顾名思义,这是在 CommonJS 环境中使用的。

所以,在你的index.js你可以require('./dist/bundle-name.js')


推荐阅读