将非通用JS库包含在Webpack上下文中的好方法是什么?

What is a good way to include a non-commonJS library to Webpack context?

本文关键字:上下文 方法 是什么 Webpack JS 包含      更新时间:2023-09-26

我想包含一个定义AngularJS模块的外部和非commonJS库。

什么是

正确的方法,因为我显然不会写:

import MyLibrary from 'MyLibraryPath'
angular.module('MyApp', MyLibrary)

编辑---------

我刚刚完成了:

require('path/myLibrary.js'); angular.module('MyApp', 'moduleName');

它有效。

这是一种好的做法吗?

是的,如果库不导出 Angular 模块的 name 属性,那很好。Angular 在设计时并没有考虑到 JS 模块,最初提倡angular.module('MyApp', ['moduleName'])模块定义风格。

从模块导出name是相对流行的约定,特别是因为可以

import * as MyLibrary from 'MyLibraryPath';

并将其用作

angular.module('MyApp', [MyLibrary]);

如果没有模块导出,可以使用 Webpack 导出加载器和

module: {
    loaders: [
        {
            loader: 'exports-loader',
            test: /path'/myLibrary'.js$/,
            query: '"moduleName"'
        }
    ],
},

配置,实质上是向模块添加module.exports = "moduleName";

如果您计划为不导出name的库 PR/创建问题,请使用此技巧暂时解决此问题。我不建议仅仅为了保持代码一致而使构建更加复杂。