짧은 버전입니다웹팩 암시 공급 업체/IE11에서 매니페스트 덩어리 - 약속은 정의되지 않은
내가 IE11에서 내 응용 프로그램을 실행할 때, 나는 오류가 manifest.js 파일 내에서 Promise is undefined
말을 얻는다.
는 어떻게하면 전에 매니페스트가 실행되어 실행되는 babel-polyfill
추가 또는 이와 유사한합니까?
내가 별도의 번들로 타사 (NPM 패키지) 스크립트를 분할하기 위해 내 웹팩 설정에 CommonsChunkPlugin를 추가하려고
긴 버전. Webpack 2 설명서에 따라 현대의 브라우저에서 잘 작동하는 "combined implicit common vendor chunks and manifest file"을 설정했습니다.
청크가 올바른 순서로 내 색인 파일에 포함되도록하는 기능을 작성했습니다 (아래 참조).
내이 명시 적 진입 점에 배경 비트 :
- legacy_libs -
script-loader
으로 전역 네임 스페이스에 배치됩니다 이전 라이브러리. 내 주요 응용 프로그램의 진입 점
다른 두 (공급 업체 및 매니페스트) 암시 적 및 CommonsChunkPlugin로 만든입니다 - 나는 시간
IE11에서 실행하면 오류가 발생합니다 : Promise is undefined
. 이것은 webpack 매니페스트 자체가 new Promise()
입니다.
내 주요 진입 점에는 import 'babel-polyfill';
이 있습니다. & 매니페스트 청킹을 추가하기 전에 이것이 IE의 약속 부족을 극복 할 수있었습니다. 하지만 이제는 manifest.js를로드해야하므로 올바른 순서로 포함시키는 방법을 찾을 수 없습니다.
내 설정은 그래서 다음과 같습니다 저도 같은 문제로 실행
module.exports = {
entry: {
legacy_libs: './app/libs.js',
main: './app/main.js'
},
...
plugins: [
// Extract third party libraries into a separate vendor bundle.
// Also extract webpack manifest into its own bundle (to prevent vendor hash changing when app source changes)
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: function (module) {
return module.context && module.context.indexOf('node_modules') !== -1;
}
}),
new webpack.optimize.CommonsChunkPlugin({
name: 'manifest'
}),
// Generate index.html file.
// Include script bundles in the right order based on chunk name prefixes.
new HtmlWebpackPlugin({
template: 'app/index.ejs',
chunksSortMode: function (a, b) {
const chunkOrder = ['manifest', 'vendor', 'legacy_libs', 'main'];
const aChunk = chunkOrder.findIndex(chunk => a.names[0].startsWith(chunk));
const bChunk = chunkOrder.findIndex(chunk => b.names[0].startsWith(chunk));
const aValue = (aChunk > -1) ? aChunk : chunkOrder.length;
const bValue = (bChunk > -1) ? bChunk : chunkOrder.length;
return aValue - bValue;
}
})
}
정말 고맙습니다 .Seeni! Webpack 2.5.1로 돌아가서 링크를 해주셔서 감사합니다. Github에 관한 문제. 나는 버그 수정을 계속 주시 할 것이다. –