나는 Webpack을 꽤 오래 배우고 이상한 행동을 보았습니다.Webpack의 CommonsChunkPlugin 및 "가져 오기 * as"사용
나는vendor.ts
-file에 내 모든 공급 업체의 모듈을 수입하고있는
Webpack Introduction on angular.io 에서 설명한 바와 같이
의 polyfill.ts
- 파일에 모든 polyfills과 main.ts
- 파일 내에서 내 응용 프로그램을 초기화합니다. 따라서, 나는 웹팩 내 설정에서 다음과 같은 진입 점과 CommonsChunkPlugin 추가 :
// webpack.config.js -->
entry: {
'polyfill': './src/polyfill.ts',
'vendor': './src/vendor.ts',
'app': './src/main.ts'
}
// ...
new Webpack.optimize.CommonsChunkPlugin({
name: ['app', 'vendor', 'polyfill']
})
은 결과적으로 웹팩는
vendor.ts
및
app.ts
가 사용 공통 모듈을 가지고 실현하고
vendor.js
-file 만에 추가해야합니다.
vendor.ts
- 파일은 다음과 같이 않습니다
// vendor.ts -->
// Angular 2.
import '@angular/platform-browser';
// ...
import '@angular/router';
// RxJS.
import 'rxjs';
// Web Font Loader.
import * as WebFont from 'webfontloader';
// Font Awesome.
import '../node_modules/font-awesome/css/font-awesome.css';
불행하게도,이 문제는 내가 import MODULE
를 통해 수입 된 모든 모듈 예상대로 작동하지만 내가 import * as ALIAS from MODULE
를 통해 수입 된 모듈이 작동하지 않습니다. 이 예제에서 webfontloader
- 모듈은 - 파일과 공유 종속성이 있어야하지만 여기에도 가져 오기 때문에 app.js
에 작성됩니다.
// app.ts -->
// Initialize Angular.
platformBrowserDynamic().bootstrapModule(AppModule);
// Load Fonts.
WebFont.load({
google: {
families: ['Lato:400,700']
}
});
나는이 작업을 수행 import * as WebFont from 'webfontloader';
let WebFont = require('webfontloader');
에 변경
무엇이 잘못 되었나요? 그렇다면 왜 모든 앵글 수입품이 작동합니까?