zoukankan      html  css  js  c++  java
  • angular2 基于webpack环境搭建

    目录结构:

    angular-quickstart

      |_ ts

        |_ app.ts

        |_ index.ts

      |_ index.html

      |_ package.json

      |_ tsconfig.json

      |_ webpack.config.js

    1. angular-quickstart/package.json

    {
      "name": "angular-quickstart",
      "version": "1.0.0",
      "description": "I will show you how to set up angular2 development angular-quickstart",
      "keywords": [
        "angular2",
        "angular-quickstart"
      ],
      "scripts": {
        "start": "webpack-dev-server --devtool eval-source-map --progress --colors --hot --inline --watch --content-base",
        "build": "webpack --progress --colors",
        "dev": "webpack-dev-server"
      },
      "author": "Lin.keqing",
      "license": "MIT",
      "dependencies": {
        "@angular/common": "^2.4.5",
        "@angular/compiler": "^2.4.5",
        "@angular/core": "^2.4.5",
        "@angular/platform-browser": "^2.4.5",
        "@angular/platform-browser-dynamic": "^2.4.5",
        "@angular/forms": "^2.4.5",
        "core-js": "^2.4.1",
        "rxjs": "5.0.3",
        "zone.js": "^0.7.6"
      },
      "devDependencies": {
        "@types/core-js": "^0.9.35",
        "ts-loader": "^2.0.0",
        "typescript": "^2.1.5",
        "webpack": "^2.2.0",
        "webpack-dev-server": "^2.2.0"
      }
    }

    2. angular-quickstart/tsconfig.json

    {  
        "compilerOptions": {
            "module": "commonjs",
            "target": "es5",
            "moduleResolution": "node",
            "noImplicitAny": true,
            "removeComments": true,
            "emitDecoratorMetadata": true,
            "experimentalDecorators": true,
            "sourceMap": true,
            "declaration": false
        },
        "buildOnSave": false,
        "compileOnSave": false,
        "exclude": [
            "node_modules"
        ] 
    }  

    3. angular-quickstart/webpack.config.js

    const {resolve} = require('path');
    
    module.exports = {
        entry: {
            index: './ts/index.ts'
        },
        output: {
            path: resolve(__dirname, 'dist'),
            filename: 'bundle.js',
            publicPath: 'dist/'
        },
        module: {
            exprContextCritical: false,
            rules: [
                {
                    test: /.ts$/,
                    use: ['ts-loader']
                }
            ]
        },
        resolve: {
            extensions: [
                '.js',
                '.ts'
            ]
        }
    };

    运行npm install

    4. angular-quickstart/index.html

    <!DOCTYPE html>
    <html lang="en">
        <head>
            <meta charset="UTF-8">
            <meta name="viewport" content="width=device-width, initial-scale=1">
            <title>environment</title>
        </head>
        <body>
            <!--这里引用我们的第一个component-->
            <my-app></my-app>
            <!--加载使用webpack编译后的bundle-->
            <script type="text/javascript" src="/dist/bundle.js"></script>
        </body>
    </html>

    5. angular-quickstart/ts/app.ts

    import {Component} from '@angular/core';
    
    //声明第一个Component
    @Component({
        selector: 'my-app',
        template: '<h1>My First Angular 2 AppApple</h1>'
    })
    export class AppComponent { }

    6. angular-quickstart/ts/index.ts

    //不显示引入,你会得到"Uncaught reflect-metadata shim is required when using class decorators"的错误
    import 'core-js/es6';
    import 'core-js/es7/reflect';
    import 'zone.js/dist/zone';
    
    //引入NgModule装饰器
    import { NgModule }      from '@angular/core';
    
    //引入浏览器模块
    import { BrowserModule } from '@angular/platform-browser';
    
    //引入启动器
    import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
    
    //引入我们刚才创建的第一个component
    import { AppComponent }  from './app';
    
    //声明一个应用模块
    @NgModule({
      imports:      [ BrowserModule ],
      declarations: [ AppComponent ],
      bootstrap:    [ AppComponent ]
    })
    class AppModule { }
    
    //启动应用
    platformBrowserDynamic().bootstrapModule(AppModule);

    运行 npm start

    完。

    一个下下来就可以用的环境:

    https://github.com/angular/quickstart

    配套的学习地址:

    http://angular2.axuer.com/docs/ts/latest/guide/learning-angular.html

  • 相关阅读:
    N天学习一个linux命令之scp
    php svn仓库提交预处理
    NTP-网络时间协议
    N天学习一个linux命令之umask
    N天学习一个linux命令之xz
    N天学习一个linux命令之xargs
    N天学习一个Linux命令之hostnamectl
    jQuery easyUI的datagrid,如何在翻页以后仍能记录被选中的行
    multiselect2side:jQuery多选列表框插件
    springmvc+jquery实现省市区地址下拉框联动
  • 原文地址:https://www.cnblogs.com/alkq1989/p/6477920.html
Copyright © 2011-2022 走看看