2016-10-28 26 views
8

Đây là cấu trúc Thư mục tôi đã tạo cho một dự án được thực hiện trong góc 2. Tôi đã xóa thư mục Node-Module và thư mục khác để vừa với nó. Đối với kiểu dáng tôi chỉ sử dụng Bootstrap. Tôi đã không sử dụng Angular-CLI. Bất cứ ai có thể hướng dẫn tôi làm thế nào tôi nên triển khai nó? Tôi có nên dùng gulp không? các bước của tôi nên là gì. Tôi đã trải qua rất nhiều câu trả lời trên stackoverflow nhưng tất cả đều sử dụng GULP và CLI. Là nó phải sử dụng cả hai, nếu vậy xin vui lòng hướng dẫn làm thế nào để đạt được triển khai. Đáng buồn là không có gì đề cập đến việc triển khai trên trang web chính thức của Anular2. Bất kỳ trợ giúp, hướng dẫn và đề nghị được hoan nghênh.Làm thế nào để triển khai dự án Angular2 mà không cần sử dụng CLI

|--app 
| |-- logo.png 
| |-- components 
| | |-- main.component.ts 
| | |-- config.component.ts 
| | |-- download-resources.component.ts 
| | |-- header-footer.component.ts 
| | |-- licence.component.ts 
| | |-- menu-bar.component.ts 
| | |-- process-status.component.ts 
| | |-- release-history.component.ts 
| | |-- upload-release.component.ts 
| | `-- version.component.ts 
| |-- main 
| | `--module.ts 
| |-- main.ts 
| |-- models 
| | |-- config.model.ts 
| | |-- meta-info.model.ts 
| | |-- process-status.model.ts 
| | `-- version.model.ts 
| |-- services 
| | |-- cc-info.service.ts 
| | |-- config.service.ts 
| | |-- release-history.service.ts 
| | |-- shared.service.ts 
| | |-- upload-release.service.ts 
| | `-- version.service.ts 
| `-- template 
|  |-- download-resources.component.html 
|  |-- licence.component.html 
|  |-- license-info.component.html 
|  |-- machines.component.html 
|  |-- menu-bar.component.html 
|  |-- process-status.component.html 
|  |-- release-history.component.html 
|  |-- topology-info.component.html 
|  |-- topology-upload.template.html 
|  |-- upload-release.component.html 
|  `-- version.component.html 
|-- index.html 
|-- package.json 
|-- styles.css 
|-- systemjs.config.js 
|-- tsconfig.json 
`-- typings.json 

Đây là tập tin system.config.js tôi:

(function (global) { 
    System.config({ 
    // DEMO ONLY! REAL CODE SHOULD NOT TRANSPILE IN THE BROWSER 
    transpiler: 'ts', 
    typescriptOptions: { 
     tsconfig: true 
    }, 
    meta: { 
     'typescript': { 
     "exports": "ts" 
     } 
    }, 
    paths: { 
     // paths serve as alias 
     'npm:': 'node_module' 
    }, 
    // map tells the System loader where to look for things 
    map: { 
     // our app is within the app folder 
     app: 'main-app', 

     // angular bundles 
     '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
     '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
     '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
     '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
     '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
     '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
     '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
     '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
     '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js', 

     // other libraries 
     'ng2-file-upload' : 'npm:ng2-file-upload', 
     'rxjs':      'npm:rxjs', 
     'angular-in-memory-web-api': 'npm:angular-in-memory-web-api', 
     'ts':      'npm:[email protected]/lib/plugin.js', 
     'typescript':    'npm:[email protected]/lib/typescript.js', 

    }, 
    // packages tells the System loader how to load when no filename and/or no extension 
    packages: { 
     app: { 
     main: './main.ts', 
     defaultExtension: 'ts' 
     }, 
     rxjs: { 
     defaultExtension: 'js' 
     }, 
     'angular-in-memory-web-api': { 
     main: './index.js', 
     defaultExtension: 'js' 
     }, 
     'ng2-file-upload':{ 
     main: 'ng2-file-upload.js', 
     defaultExtension: 'js' 
     } 
    } 
    }); 
})(this); 

Trả lời

2

Tôi đã giải quyết vấn đề này bằng cách sử dụng gói webpack. Webpack của tôi tạo một bundle.js bao gồm tất cả các tệp .js .ts .html và chuyển đổi nó thành bundle.js. mà tôi nhập vào Index.html. Bundle.js này chứa tất cả những thứ cần thiết để nó chạy. Những thứ khác theo yêu cầu của trang web của tôi, như style.css và một số thư viện bootstrap phải được đưa vào bên ngoài trong index.html. bước mà bạn cần phải làm theo là:

  1. Bao gồm "nén-webpack-plugin": gói "^ 0.3.2" trong package.json trong dev-phụ thuộc
  2. Có thêm vài điều cần lưu khi bạn sử dụng webpack. Bạn cần phải sử dụng cú pháp chính xác để nhập các mẫu của bạn trong componenet và có rất ít thay đổi trong các tuyến đường.
  3. Tôi cũng đã thay đổi kịch bản xây dựng của mình trong package.json.Thêm mã cho webpack làm việc

    "xây dựng": "NPM chạy tsc & & NPM chạy sạch & & mkdir _dist & & webpack --devtool inline-nguồn-map",

  4. Bạn cần định cấu hình webpack của mình. webpack.config.js chứa tất cả các cấu hình mà tôi đã thực hiện, Nó trông giống như thế này.

var webpack = require("webpack"); 
var CompressionPlugin = require("compression-webpack-plugin"); 
module.exports = { 
entry: { 
"app": "./app/main" 
}, 
     output: { 
      path: __dirname, 
      filename: "./_dist/bundle.js", 
      publicPath: 'http://localhost:4242/app' 
     }, 
resolve: { 
     extensions: ['', '.js', '.ts', '.html'] 
    }, 
    devtool: 'source-map', 
    module: { 
     loaders: [ 
      { 
    test: /\.ts$/, 
       loaders: ['awesome-typescript-loader', 'angular2-template-loader'] 
      }, 
      { 
       test: /\.html$/, 
       loader: 'html' 
      } 
    ] 
}, 
htmlLoader: { 
    minimize: false 
}, 
plugins: [ 
    new webpack.NoErrorsPlugin(), 
], 
devServer: { 
    historyApiFallback: true, 
stats: 'minimal', 
     inline: true, 
     port: 4242 
    } 
} 
0

TLDR câu trả lời: Nhìn vào Angular2 Quickstart Docs và hiểu cách mọi thứ hoạt động và sau đó tìm ra những gì bạn muốn sử dụng để xây dựng của bạn dự án để điều chỉnh nhu cầu của bạn. Nếu bạn chỉ thực hành theo hướng dẫn và thử kết hợp. Tôi cũng khuyên bạn nên thử sử dụng tour of heroes tutorial để biết thêm mô tả.


Tôi gặp vấn đề tương tự bạn đang gặp phải Tôi không biết cách bắt đầu với Angular2 vì dường như có rất nhiều bước liên quan. Ngoài ra, nhiều dự án bạn tìm thấy trực tuyến rất hạn chế về những gì họ làm. Đối với hầu hết các phần, chúng chỉ là hướng dẫn về cách bắt đầu sử dụng angular2 trên giao diện người dùng bằng cách sử dụng lệnh systemjs và CLI - Thật tốt khi chúng giúp bạn hiểu những gì bạn cần để khởi chạy ứng dụng hoặc xử lý bất kỳ câu hỏi nào bạn có thể có.

Có nói rằng việc xây dựng tối ưu là chủ quan với những gì bạn muốn làm và cách bạn muốn xây dựng dự án. Ví dụ, bản thân tôi đã đi với cách tiếp cận Gulp vì nó là một công cụ tôi quen thuộc và không muốn làm bất kỳ cli nào khác ngoài việc gõ vào gulp. Hạn chế để làm như vậy là thực tế là không có hướng dẫn nào minh họa cách ghép lại với nhau và chạy Angular2 theo cách tôi muốn, với sự khó khăn thêm của việc liên kết trong một chương trình phụ trợ phù hợp với nhu cầu của tôi.

Tôi biết điều này có lẽ không phải là câu trả lời bạn muốn nhưng coi đó là mẹo. Để hiểu những gì bạn muốn làm, chơi xung quanh với Angular 2 cách Docs hướng dẫn bạn và chú ý đến cách họ xây dựng dự án và cách mọi thứ tương tác với nhau. Khi bạn đang làm điều đó bỏ qua tất cả các thông tin khác về một Gulp hoặc bất cứ điều gì xây dựng những người khác đang sử dụng; để đảm bảo bạn hiểu những gì bạn cần. Từ đó tôi khuyên bạn nên sử dụng các kỹ năng và kiến ​​thức của bạn về các công cụ khác để xây dựng một gói mạnh mẽ hơn có thể xử lý nhu cầu của bạn và những gì bạn muốn thực hiện. Ngoài ra, nếu bạn muốn từng bước, Angular tour of heroes tutorial có tính mô tả và là cách tốt để bắt đầu.

1

Cuối cùng kẻ góc lắng nghe vấn đề của tôi và đã đưa ra một giải pháp rất rộng. Họ đã cập nhật trang web của họ và đã bao gồm các bước trên trong trang web của họ. vui lòng thực hiện việc này để được hướng dẫn thích hợp Webpack for Angular2

Các vấn đề liên quan