[angular] angular-cli 프로젝트에 부트 스트랩을 추가하는 방법

angular-cli 1.0.0-beta.5 (w / 노드 v6.1.0)로 생성 된 앱에서 부트 스트랩 4 (4.0.0-alpha.2)를 사용하려고합니다.

npm으로 부트 스트랩과 그 종속성을 얻은 후 첫 번째 접근 방식은 다음과 같이 추가했습니다 angular-cli-build.js.

'bootstrap/dist/**/*.min.+(js|css)',
'jquery/dist/jquery.min.+(js|map)',
'tether/dist/**/*.min.+(js|css)',

그리고 우리의 수입 index.html

<script src="vendor/jquery/dist/jquery.min.js"></script>
<script src="vendor/tether/dist/js/tether.min.js"></script>
<link rel="stylesheet" type="text/css" href="vendor/bootstrap/dist/css/bootstrap.min.css">
<script src="vendor/bootstrap/dist/js/bootstrap.min.js"></script>

이것은 잘 작동 ng serve했지만 -prod플래그 가있는 빌드를 생성 하자마자이 모든 의존성이 사라졌습니다 dist/vendor(서프라이즈!).

angular-cli로 생성 된 프로젝트에서 이러한 시나리오 (예 : 부트 스트랩 스크립트로드)를 처리하기위한 방법은 무엇입니까?

우리는 다음과 같은 생각을 가지고 있었지만 실제로 어떤 길을 갈지 모른다 …

  • CDN을 사용 하시겠습니까? 그러나 우리는이 파일들을 사용할 수 있도록하기 위해 오히려이 파일들을 제공 할 것입니다

  • 의존성을 복사 dist/vendor한 후에 ng build -prod? 그러나 그것은 angular-cli가 빌드 부분을 ‘관리’하기 때문에 제공 해야하는 것 같습니다.

  • jquery, 부트 스트랩 및 테더를 추가 src/system-config.ts하고 어떻게 든 번들로 가져 오는가 main.ts? 그러나 애플리케이션 코드에서 명시 적으로 사용하지 않을 것이라는 점을 고려할 때 (예를 들어 moment.js 또는 lodash와 같은) 잘못된 것으로 보였습니다.



답변

중요 업데이트 : NG2 – 부트 스트랩은 지금 교체 NGX-부트 스트랩

ngx-bootstrap 은 Angular 3과 4를 모두 지원합니다.

업데이트 : 1.0.0-beta.11-webpack 이상

먼저 터미널에서 다음 명령을 사용 하여 angular-cli 버전을 확인하십시오 .

ng -v

귀하의 경우 각-CLI 버전보다 큰 1.0.0-beta.11-웹팩 , 당신은 다음 단계를 수행해야합니다 :

  1. ngx-bootstrapbootstrap을 설치 하십시오 .

    npm install ngx-bootstrap bootstrap --save

이 줄은 현재 Bootstrap 3을 설치하지만 나중에 Bootstrap 4를 설치할 수 있습니다. 명심 NGX-부트 스트랩 지원하는 두 버전을.

  1. 열기 SRC / 응용 프로그램 / app.module.ts 및 추가 :

    import { AlertModule } from 'ngx-bootstrap';
    ...
    @NgModule({
    ...
    imports: [AlertModule.forRoot(), ... ],
    ...
    })
  2. 열기 각도-cli.json (angular6 및 변경 이후의 파일 이름에 대한 angular.json )과은에 새 항목을 삽입 styles배열 :

    "styles": [
    "styles.css",
    "../node_modules/bootstrap/dist/css/bootstrap.min.css"
    ],
  3. SRC / 응용 프로그램 / app.component.html 및 추가 :

    <alert type="success">hello</alert>

1.0.0-beta.10 이하 버전 :

또한, angular-cli 버전이 1.0.0-beta.10 이하인 경우 아래 단계를 사용할 수 있습니다.

먼저 프로젝트 디렉토리로 이동하여 다음을 입력하십시오.

npm install ngx-bootstrap --save

그런 다음 angular-cli-build.js를 열고 다음 줄을 추가하십시오.

vendorNpmFiles: [
   ...
   'ngx-bootstrap/**/*.js',
   ...
]

이제 src / system-config.ts 를 열고 다음을 작성하십시오.

const map:any = {
   ...
   'ngx-bootstrap': 'vendor/ngx-bootstrap',
   ...
}

…과:

const packages: any = {
  'ngx-bootstrap': {
    format: 'cjs',
    defaultExtension: 'js',
    main: 'ngx-bootstrap.js'
  }
};


답변

https://github.com/angular/angular-cli 에서 키워드> 글로벌 라이브러리 설치 를 찾으면 답을 찾는 데 도움이됩니다.

문서에 따라 다음 단계를 수행하여 Bootstrap 라이브러리를 추가 할 수 있습니다.

먼저 npm에서 Bootstrap을 설치하십시오.

npm install bootstrap@next

그런 다음 angular-cli.json 파일의 apps [0] .scripts에 필요한 스크립트 파일을 추가하십시오.

 "scripts": [
    "../node_modules/bootstrap/dist/js/bootstrap.js"
    ],

마지막으로 bootsstrap CSS를 apps [0] .styles 배열에 추가하십시오 :

"styles": [
    "styles.css",
    "../node_modules/bootstrap/dist/css/bootstrap.css"
    ],

ng serve를 실행중인 경우 다시 시작하면 Bootstrap 4가 앱에서 작동해야합니다.

이것이 가장 좋은 해결책입니다. 그러나 ng serve를 다시 시작하지 않으면 작동하지 않습니다. 이 마지막 작업을 수행하는 것이 좋습니다.


답변

다음을 수행하십시오.

npm i bootstrap@next --save

부트 스트랩 4가 프로젝트에 추가됩니다.

다음으로 src/style.scss또는 src/style.css파일 로 이동하여 (사용중인 것을 선택하십시오) 부트 스트랩을 가져 오십시오.

style.css의 경우

/* You can add global styles to this file, and also import other style files */
@import "../node_modules/bootstrap/dist/css/bootstrap.min.css";

style.scss의 경우

/* You can add global styles to this file, and also import other style files */
@import "../node_modules/bootstrap/scss/bootstrap";

스크립트를 들어 당신은 여전히 같은 각도-cli.json 파일에 파일을 추가해야합니다 ( 각도 버전 6에서는이 편집 파일에서 수행 할 필요가 angular.json ) :

"scripts": [
        "../node_modules/jquery/dist/jquery.js",
        "../node_modules/tether/dist/js/tether.js",
        "../node_modules/bootstrap/dist/js/bootstrap.js"
],


답변

처음에는 다음 명령으로 테더, jquery 및 부트 스트랩을 설치해야합니다.

npm i -S tether
npm i -S jquery
npm i -S bootstrap@4.0.0-alpha.4 

angular-cli.json (버전 6 이후의 angular.json) 파일에이 행을 추가 한 후

  "styles": [
    "styles.scss",
    "../node_modules/bootstrap/scss/bootstrap-flex.scss"
  ],
  "scripts": [
    "../node_modules/jquery/dist/jquery.js",
    "../node_modules/tether/dist/js/tether.js",
    "../node_modules/bootstrap/dist/js/bootstrap.js"
  ]


답변

아무도 아직 부트 스트랩을 포함시키는 방법에 대한 공식 (angular-cli 팀) 이야기를 언급하지 않았으므로 https://github.com/angular/angular-cli/wiki/stories-include-bootstrap

부트 스트랩 포함

부트 스트랩 은 Angular 프로젝트 내에서 사용할 수있는 널리 사용되는 CSS 프레임 워크입니다. 이 안내서는 Angular CLI 프로젝트에 부트 스트랩을 추가하고 부트 스트랩을 사용하도록 구성하는 과정을 안내합니다.

CSS 사용

시작하기

새 프로젝트를 만들고 프로젝트를 탐색하십시오.

ng new my-app
cd my-app

부트 스트랩 설치

새 프로젝트가 작성되고 준비되면 다음으로 프로젝트에 부트 스트랩을 종속성으로 설치해야합니다. --save옵션을 사용하면 의존성이 package.json에 저장됩니다

# version 3.x
npm install bootstrap --save

# version 4.x
npm install bootstrap@next --save

프로젝트 구성

이제 프로젝트가 설정되었으므로 부트 스트랩 CSS를 포함하도록 구성해야합니다.

  • .angular-cli.json프로젝트 루트 에서 파일 을여십시오.
  • 속성 아래 apps에서 해당 배열의 첫 번째 항목이 기본 응용 프로그램입니다.
  • styles외부 전역 스타일을 응용 프로그램에 적용 할 수 있는 속성 이 있습니다.
  • 경로를 지정하십시오 bootstrap.min.css

완료되면 다음과 같아야합니다.

"styles": [
        "../node_modules/bootstrap/dist/css/bootstrap.min.css",
        "styles.css"
      ],

참고 : 변경하면 구성 변경을 .angular-cli.json시작 ng serve하기 위해 다시 시작해야합니다 .

테스트 프로젝트

app.component.html다음 마크 업을 열고 추가하십시오.

<button class="btn btn-primary">Test Button</button>

애플리케이션이 구성된 상태 ng serve에서 개발 모드에서 애플리케이션을 실행 하도록 실행하십시오. 브라우저에서 응용 프로그램으로 이동하십시오 localhost:4200. 부트 스트랩 스타일 버튼이 나타나는지 확인하십시오.

SASS 사용

시작하기

새 프로젝트를 만들고 프로젝트를 탐색하십시오.

ng new my-app --style=scss
cd my-app

부트 스트랩 설치

# version 3.x
npm install bootstrap-sass --save

# version 4.x
npm install bootstrap@next --save

프로젝트 구성

에 빈 파일 _variables.scss을 만듭니다 src/.

를 사용하는 경우 bootstrap-sass다음을 추가하십시오 _variables.scss.

$icon-font-path: '../node_modules/bootstrap-sass/assets/fonts/bootstrap/';

다음을 styles.scss추가하십시오.

// version 3
@import 'variables';
@import '../node_modules/bootstrap-sass/assets/stylesheets/_bootstrap';

// version 4
@import 'variables';
@import '../node_modules/bootstrap/scss/bootstrap';

테스트 프로젝트

app.component.html다음 마크 업을 열고 추가하십시오.

<button class="btn btn-primary">Test Button</button>

애플리케이션이 구성된 상태 ng serve에서 개발 모드에서 애플리케이션을 실행 하도록 실행하십시오. 브라우저에서 응용 프로그램으로 이동하십시오 localhost:4200. 부트 스트랩 스타일 버튼이 나타나는지 확인하십시오. 변수가 열려 있는지 확인 _variables.scss하고 다음을 추가하십시오.

$brand-primary: red;

글꼴 색이 변경된 것을 보려면 브라우저를 반환하십시오.


답변

v1.0.0-beta.26 업데이트

당신은 부트 스트랩 가져 오기위한 새로운 방법에 대한 문서를 볼 수 있습니다 여기에

여전히 작동하지 않으면 ng serve 명령으로 다시 시작하십시오.

1.0.0 이하 버전 :

index.html 파일에서 부트 스트랩 CSS 링크가 필요합니다 (js 스크립트 필요 없음)

<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">

npm install ng2-bootstrap --save
npm install moment --save

my_project / src / system-config.tsng2-bootstrap 을 설치 한 후 :

/** Map relative paths to URLs. */
const map: any = {
  'moment': 'vendor/moment/moment.js',
  'ng2-bootstrap': 'vendor/ng2-bootstrap'
};

/** User packages configuration. */
const packages: any = {
  'ng2-bootstrap': {
    defaultExtension: 'js'
  },
  'moment':{
     format: 'cjs'
  }
};

그리고 my_project / angular-cli-build.js에서 :

module.exports = function (defaults) {
return new Angular2App(defaults, {
    vendorNpmFiles: [
        'ng2-bootstrap/**/*',
        'moment/moment.js'
    ]
});
};

공급 업체에 모듈을 넣으려면이 명령을 잊지 마십시오.

ng build

동일한 원리 인 다른 모듈에서 가져옵니다.


답변

릴리스 후 위의 방법이 변경된 것 같습니다.이 링크를 확인하십시오.

https://github.com/valor-software/ng2-bootstrap/blob/development/docs/getting-started/ng-cli.md

프로젝트를 시작하다

npm i -g angular-cli
ng new my-app
cd my-app
ng serve
npm install --save @ng-bootstrap/ng-bootstrap

ng-bootstrap 및 부트 스트랩 설치

npm install ng2-bootstrap bootstrap --save

src / app / app.module.ts를 열고 추가하십시오

import { AlertModule } from 'ng2-bootstrap/ng2-bootstrap';
...

@NgModule({
   ...
   imports: [AlertModule, ... ],
    ...
})

angular-cli.json을 열고 스타일 배열에 새 항목을 삽입하십시오.

"styles": [
        "styles.css",
        "../node_modules/bootstrap/dist/css/bootstrap.min.css"
      ],

src / app / app.component.html을 열고 추가하여 모든 작품을 테스트하십시오

<alert type="success">hello</alert>