2016-10-28 121 views
8

这是我为在角度2中制作的项目制作的文件夹结构。我已经删除了节点模块文件夹和其他文件夹以便适合它。对于造型我只使用Bootstrap。我没有使用Angular-CLI。任何人都可以指导我如何部署它?我应该使用吞咽吗?我的步骤应该是什么。我已经通过了很多关于stackoverflow的答案,但都使用了GULP和CLI。是否必须同时使用,如果是的话请指导如何实现部署。可悲的是,在Anular2官方网站上没有提到关于部署的内容。欢迎任何帮助,指导和建议。如何在不使用CLI的情况下部署Angular2项目

|--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 

这是我system.config.js文件:

(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); 

回答

2

我使用webpack解决了这个问题。我的webpack制作了一个bundle.js,其中包含所有.js .ts .html文件并将其转换为bundle.js。我在Index.html中导入。这个bundle.js包含了它运行所需的所有东西。我的网站需要的其他东西,如style.css和一些引导程序库必须包含在index.html的外部。你需要遵循 步骤是:

  1. 包括“压缩的WebPack-插件”:在DEV-依赖“^ 0.3.2”包中的package.json
  2. 有一些事情保持当你使用webpack的时候记住。您需要使用正确的语法将模板导入到组件中,并且路由中的更改很少。
  3. 我已经在package.json中更改了我的构建脚本。增加了的WebPack代码工作

    “建”: “故宫运行TSC & & NPM润洁& &的mkdir _dist & &的WebPack --devtool直列源图”,

  4. 你需要配置你的webpack。 webpack.config.js包含我所做的所有配置,它看起来像这样。

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答案:看Angular2 Quickstart Docs并了解如何一切正常,然后找出你想要用来构建你的项目来量身定制您的需求。如果你只是练习,只需按照教程和尝试组合。我还建议您尝试使用tour of heroes tutorial以获取更多说明。


我有同样的问题,你跑到我不知道如何开始Angular2,因为它似乎有很多涉及的步骤。此外,您在网上找到的很多项目在他们的工作中都非常有限。在大多数情况下,它们只是关于如何开始在前端使用systemjs和CLI任务使用angular2的教程 - 这很好,因为它们有助于理解启动应用程序需要什么或处理您可能遇到的任何问题。

说了最佳构建对于您想要做什么以及想要如何构建项目是主观的。例如,我自己使用Gulp方法,因为它是我熟悉的工具,除了输入gulp之外不想做任何其他的cli。这样做的缺点是,没有教程说明如何按我想要的方式拼凑和运行Angular2,并增加了绑定到适合我需求的后端的困难。

我知道这可能不是您想要的答案,而是将其作为提示。为了理解你想要做什么,请使用Angular 2以Docs的方式引导你,并注意他们如何构建项目以及如何互动。当你这样做时,无视其他所有关于Gulp或其他人正在使用的内容的信息;确保你明白你需要什么。从那里我会建议把你的技能和其他工具的知识,以建立一个更强大的软件包,可以处理您的需求和你想要完成的。此外,如果你想要一步一步的Angular tour of heroes tutorial是相当具有描述性和开始的好方法。

1

最后角的家伙听了我的问题,并给了一个非常广泛的解决方案。他们更新了他们的网站,并在他们的网站中包含了上述步骤。请仔细阅读本文以获得正确的指导Webpack for Angular2

相关问题