Webpack - 捆绑

Webpack - Bundling

我有以下问题。我的 webpack 正在捆绑来自 node_modules 的文件。我怎样才能阻止他这样做?他正在这样做,因为我从 node_modules 导入文件到 main.ts,但我必须这样做。我究竟做错了什么?

main.ts

import { NgModule } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app/app.component';
@NgModule({
    imports: [ BrowserModule ],
    exports: [],
    declarations: [AppComponent],
    providers: [],
})
export class AppModule { }
platformBrowserDynamic().bootstrapModule(AppModule);

tsconfig.json

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": ["es2015", "dom"],
    "noImplicitAny": true,
    "suppressImplicitAnyIndexErrors": true
  }
}

webpack.config.json

var webpack = require('webpack');

module.exports = {
    entry : __dirname + '/src/main.ts',
    output: {
        path: __dirname + '/dist',
        filename: 'app.bundle.js'
    },
    module: {
        rules: [
            {
                test: /\.ts$/,
                loader: 'ts-loader'
            }
        ]
    },
    resolve: {
        extensions: ['.js','.ts']
    }
};

package.json

{
  "name": "angular2",
  "version": "1.0.0",
  "scripts": {
    "start": "webpack --progress"
  },
  "dependencies": {
    "@angular/common": "~2.4.0",
    "@angular/compiler": "~2.4.0",
    "@angular/core": "~2.4.0",
    "@angular/forms": "~2.4.0",
    "@angular/http": "~2.4.0",
    "@angular/platform-browser": "~2.4.0",
    "@angular/platform-browser-dynamic": "~2.4.0",
    "@angular/router": "~3.4.0",
    "core-js": "^2.4.1",
    "rxjs": "5.0.1",
    "zone.js": "^0.7.4"
  },
  "devDependencies": {
    "ts-loader": "^2.0.2",
    "typescript": "^2.2.1",
    "typings": "^2.1.0",
    "webpack": "^2.3.0"
  }
}

测试 .js 文件并排除加载器中的节点模块,使用 javascript(react) 和 babel-loader 的示例:

    {
        test: /.js?$/,
        loader: 'babel-loader',
        exclude: /node_modules/,
        query: {
            presets: [
                'es2015', 'react', 'stage-0',
            ],
    }
    },

在您的 main.js 文件中,您可以只执行 import Module from 'module',其中 'module' 是您的组件的名称。如果你这样引用它,Webpack 会打包它。

示例,如果我想包含 React:import React from 'react' - 不需要相对路径。