我知道这个问题之前已经被问过了,但是在搜索并尝试了大量我不得不问的东西之后。角度4,全局导入外部javascript
我使用的是Angular Starter包和尝试导入external javascript library
我没有问题,直接将它导入到我的部件,像这样
import * as loadImage from 'blueimp-load-image/js/index.js';
但据我所知,我应该引入外部脚本(带有异步操作)在zone.js之前,因为否则可能会导致更改检测出现问题。其实这正是我在iOS中遇到的Safari问题。目前我必须手动调用更改检测。
在角度启动包中zone.js
在名为polyfills.ts
的文件中是必需的,该文件被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');
}
如何以及在哪里我可以导入我的外部JavaScript文件zone.js之前(下面的内容),所以我仍然可以使用它在我的组件?
到目前为止,我的问题是,我无法访问外部库函数,因为他们总是undefined
。但他们已被添加到生成的JavaScript文件。
将外部javascript导入到angular 4项目中的整个过程对我来说似乎非常复杂。 JavaScript文件的
内容:在您的index.html文件的头部部分
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')
你有没有机会尝试[我的解决方案](https://stackoverflow.com/a/45793458/2545680)? –