我想要包含一个定义AngularJS模块的外部和非commonJS库。
什么是正确的方法,因为我显然不能写:
import MyLibrary from 'MyLibraryPath'
angular.module('MyApp', MyLibrary)
修改---------
我刚刚完成了:
require('path/myLibrary.js');
angular.module('MyApp', 'moduleName');
它有效。
这是一个好习惯吗?
答案 0 :(得分:1)
是的,如果库不导出Angular模块的name
property,则可以。 Angular的设计并未考虑JS模块,最初提升了def run():
# Do something
if __name__ == "__main__":
print "Hi"
模块定义风格。
从模块中导出angular.module('MyApp', ['moduleName'])
是相对流行的惯例,特别是因为可以做到
name
并将其用作
import * as MyLibrary from 'MyLibraryPath';
如果没有模块导出,可以使用Webpack exports-loader和
来处理它angular.module('MyApp', [MyLibrary]);
配置,它基本上将module: {
loaders: [
{
loader: 'exports-loader',
test: /path\/myLibrary\.js$/,
query: '"moduleName"'
}
],
},
添加到模块。
如果您计划为未导出module.exports = "moduleName";
的库PR /创建问题,请使用此hack暂时解决此问题。我不建议让构建更复杂,只是为了保持代码的一致性。