2016-10-28 2 views
0

안녕하세요. 오늘 나는 또 다른 문제를 제시하고있다! (Yay?)웹팩로드를 사용하여 타이프 스크립트로 각도 가져 오기

typescript 코드를 컴파일하기 위해 ts-loader와 함께 webpack을 사용하고 있습니다. 나는이 같은 각도 가져 해요 그러나 때

[18:11:21] Starting 'build'... 
ts-loader: Using [email protected] and C:\testProject\tsconfig.json 
[18:11:24] [webpack] Hash: 155db0dc394ae32ae9e6 
Version: webpack 1.13.2 
Time: 2845ms 
Asset  Size Chunks    Chunk Names 
app.js 3.11 MB  0 [emitted] main 
chunk {0} app.js (main) 1.19 MB [rendered] 
    [0] ./app/app.module.ts 2.26 kB {0} [built] 
    [1] ./~/angular/index.js 48 bytes {0} [built] 
    [2] ./~/angular/angular.js 1.19 MB {0} [built] 
  • index.js :

    import * as angular from "angular"; 
    angular.module("app", []); 
    

    그것은 사실이 스크립트를 가져 오는 아래 그림과 같이 각 라이브러리 코드

  • angular.js의 진입 점 : 각도 라이브러리

이것은 매우 유용합니다. 그 이유는 index.js도로드 된 각도 라이브러리 인 결과 인 각도 라이브러리를로드하기 때문입니다.

여기 내 webpack.config.js입니다 :

entry: "./app/app.module.ts", 

output: { 
    publicPath: "/lib/", 
    path: path.join(__dirname,"lib"), 
    filename: "app.js" 
}, 

// source map 
devtool: "#inline-source-map", 

module: { 
    loaders: [ 
    { 
     test: /\.ts$/, 
     // Exclude node modules 
     exclude: [/node_modules/], 
     loader: 'ts-loader' 
    }, 
    { 
     test: /\.html$/, 
     // Exclude node modules 
     exclude: [/node_modules/], 
     loader: 'raw-loader' 
    } 
    ] 
} 

답변

1

내가 당신을 어떻게 웹팩 작품을 잘못 이해 생각합니다. 모든 모듈은 필요한 횟수에 관계없이 한 번 실행됩니다. angular 스크립트는 정말 한 번 실행됩니다

var angular = require('angular'); 
var anotherAngular = require('angular'); 

require 이후의 모든 통화에 대해 "캐시"결과 : 예를 들어, 당신은 할 경우.

당신이보고있는 것은 완벽하게 정상입니다. 당신이 NPM 패키지에서 각로드 할 때, 고궁 박물원 패키지처럼 보이는 index.js 사용

require('./angular'); 
module.exports = angular; 

단지 최소한의 index.js 가지고 NPM 패키지로 일반적인 다른 스크립트는 재 - 보냅니다. webpack으로로드 할 때 webpack은 angular.js을로드하고 결과를 반환 할 index.js을로드합니다. 이렇게하면 아무런 문제가 발생해서는 안되며 실제로 두 번로드되지 않습니다.

관련 문제