将非通用JS库包含在Webpack上下文中的好方法是什么?
What is a good way to include a non-commonJS library to Webpack context?
我想包含一个定义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/创建问题,请使用此技巧暂时解决此问题。我不建议仅仅为了保持代码一致而使构建更加复杂。
相关文章:
- 丢失对象“;这个“;方法中的上下文
- Ember.js:将Em.$.getJSON转换为promise并将响应绑定到控制器上下文的正确方法
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 对象方法中函数中的上下文
- 类方法中的上下文作为变量
- Rx-subscribe方法如何在不传递上下文的情况下保留上下文
- 在Ember.js中的方法之间共享变量上下文
- 在 mongo map 中调用外部 javascript 函数(对象)或减少上下文的可能方法
- 调用 ES6 方法时的绑定上下文.如何从称为回调的方法中访问对象
- 在这种特定情况下,如何在 HTML5 画布上重绘圆?(方法调用与直接使用上下文对象)
- Javascript在回调方法中编写此上下文
- 任何在javascript中捕获上下文菜单“粘贴”的方法
- 确保原型方法中的“此”上下文
- 如何在方法调用同一对象的私有方法或公共方法时更改方法调用的绑定上下文
- 更改<对象>.原型的实例方法(通过上下文)
- 在Coffeescription中调用方法并传递正确的上下文
- 有没有一种方法可以从方法中获取这个上下文
- 如何向对象添加上下文方法
- 添加新的画布上下文方法
- React 中的哪种绑定上下文方法(ES6 类)更好