【发布时间】:2017-08-21 17:19:21
【问题描述】:
我知道以前有人问过这个问题,但是在搜索和尝试了很多东西之后,我不得不问。
我正在使用Angular Starter 包并尝试导入external javascript library
像这样直接将它导入到我的组件中没有问题
import * as loadImage from 'blueimp-load-image/js/index.js';
但据我所知,我应该在 zone.js 之前导入外部脚本(使用异步操作),否则可能会导致更改检测出现问题。 事实上,这正是我在 iOS 中使用 Safari 时遇到的问题。目前我必须手动调用更改检测。
在 angular starter 包中,polyfills.ts 文件中需要 zone.js,该文件由 webpack 作为 chunk/js 文件添加。
import 'blueimp-javascript-to-blob-for-angular';
//how to import so it's useable in any component?
import 'blueimp-load-image/js/index';
import 'core-js/es6';
import 'core-js/es6/set';
import 'core-js/es7/reflect';
require('zone.js/dist/zone');
if ('production' !== ENV) {
Error['stackTraceLimit'] = Infinity;
require('zone.js/dist/long-stack-trace-zone');
}
如何以及在哪里可以在 zone.js 之前导入我的外部 javascript 文件(以下内容),以便我仍然可以在我的组件中使用它?
到目前为止,我的问题是我无法访问外部库函数,因为它们总是undefined。但它们已被添加到生成的 javascript 文件中。
将外部javascript导入angular 4项目的整个过程对我来说似乎很复杂。
Javascript 文件内容:
module.exports = require('./load-image')
require('./load-image-scale')
require('./load-image-meta')
require('./load-image-fetch')
require('./load-image-exif')
require('./load-image-exif-map')
require('./load-image-orientation')
【问题讨论】:
-
你有机会尝试my solution吗?