如何使由webpack输出库生成的javascript可以在nodejs应用程序中使用

时间:2019-01-04 04:10:40

标签: javascript node.js webpack

我正在使用webpack将JavaScript打包为库。该库用于两种情况,一种是在浏览器内部,另一种是在nodejs应用程序中使用。下面是我的webpack配置:

output: {
      filename: '[name].js',
      sourceMapFilename: '[name].map',
      path: outputPath,
      publicPath: '/',
      library: 'MyLib',
      libraryExport: "default" ,
      libraryTarget: 'umd'
    },

对于浏览器来说,用户可以通过html <script>标签引用它,如下所示:

<script src="https://myhost/mylib.js">

然后在全球范围内可以使用名称MyLib。我相信这是通过在MyLib对象上添加window来完成的。 当我在nodejs应用程序中使用我的库时,问题就来了。我会收到window is not defined错误。我认为这是因为webpack在window对象上添加了我的库,而该对象在nodejs环境中不存在。我想知道如何在不破坏浏览器用户的情况下解决此问题。我是否真的需要发布两个版本的javascript,一个用于浏览器,另一个用于nodejs?

1 个答案:

答案 0 :(得分:0)

我希望这会对您有所帮助。

output: {
      filename: '[name].js',
      sourceMapFilename: '[name].map',
      path: outputPath,
      publicPath: '/',
      library: 'MyLib',
      libraryExport: "default" ,
      libraryTarget: 'umd',
      globalObject: 'typeof self !== \'undefined\' ? self : this'
    },