2017-10-10 8 views
0

J'ai créé une application angulaire en utilisant Microsoft.AspNetCore.SpaTemplates -> MVC ASP.NET Core avec Angular.L'appel au module de noeud a échoué avec l'erreur: Le pré-amorçage a échoué en raison d'une erreur: Erreur: Impossible de trouver le module "ngx-treeview" dans webpackMissingModule?

package.json de mon projet de test unitaire a des modules suivants:

"dependencies": { 
    "@angular/animations": "4.1.2", 
    "@angular/common": "4.1.2", 
    "@angular/compiler": "4.1.2", 
    "@angular/core": "4.1.2", 
    "@angular/forms": "4.1.2", 
    "@angular/http": "4.1.2", 
    "@angular/platform-browser": "4.1.2", 
    "@angular/platform-browser-dynamic": "4.1.2", 
    "@angular/platform-server": "4.1.2", 
    "@angular/router": "4.1.2", 
    "@types/node": "7.0.18", 
    "angular2-template-loader": "0.6.2", 
    "aspnet-prerendering": "^2.0.5", 
    "aspnet-webpack": "^1.0.29", 
    "awesome-typescript-loader": "3.1.3", 
    "bootstrap": "^4.0.0-beta", 
    "css": "2.2.1", 
    "css-loader": "0.28.1", 
    "es6-shim": "0.35.3", 
    "event-source-polyfill": "0.0.9", 
    "expose-loader": "0.7.3", 
    "extract-text-webpack-plugin": "2.1.0", 
    "file-loader": "0.11.1", 
    "font-awesome": "^4.7.0", 
    "html-loader": "0.4.5", 
    "isomorphic-fetch": "2.2.1", 
    "jquery": "3.2.1", 
    "json-loader": "0.5.4", 
    "lodash": "^4.17.4", 
    "ngx-treeview": "^1.2.3", 
    "preboot": "4.5.2", 
    "raw-loader": "0.5.1", 
    "reflect-metadata": "0.1.10", 
    "rxjs": "5.4.0", 
    "source-map-loader": "^0.2.1", 
    "style-loader": "0.17.0", 
    "to-string-loader": "1.1.5", 
    "typescript": "2.3.2", 
    "url-loader": "0.5.8", 
    "webpack": "2.5.1", 
    "webpack-hot-middleware": "2.18.0", 
    "webpack-merge": "4.1.0", 
    "zone.js": "0.8.10" 
}, 
"devDependencies": { 
    "@types/chai": "3.5.2", 
    "@types/jasmine": "2.5.47", 
    "chai": "3.5.0", 
    "jasmine-core": "2.6.1", 
    "karma": "1.7.0", 
    "karma-chai": "0.1.0", 
    "karma-chrome-launcher": "2.1.1", 
    "karma-cli": "1.0.1", 
    "karma-jasmine": "1.1.0", 
    "karma-webpack": "2.0.3" 
} 
} 

J'ai installer le module de nœud NGX-TreeView et il est présent dans le dossier de node_modules.

Maintenant le fichier modules d'application a importé le treeviewModule:

import { NgModule} from '@angular/core'; import { RouterModule } from '@angular/router'; import { FormsModule } from '@angular/forms'; import { HttpModule } from '@angular/http'; 

    import { TreeviewModule } from 'ngx-treeview'; 

    import { AppComponent } from './components/app/app.component' import { HomeComponent } from './components/home/home.component'; 



    export const sharedConfig: NgModule = { 
     bootstrap: [ AppComponent ], 
     declarations: [ 
      AppComponent, 
      HomeComponent, 

     ], imports: [  TreeviewModule, 
      RouterModule.forRoot([ 
       { path: '', redirectTo: 'home', pathMatch: 'full' }, 
       { path: 'home', component: HomeComponent } 

      ]),   
FormsModule,   
HttpModule,  
], exports: 
[  
FormsModule  ] }; 

Quand je bundle avec webpack je reçois l'erreur suivante:

commande

est: webpack --config webpack.config.js

erreur est:

ERROR in ./ClientApp/app/app.module.shared.ts 
    Module not found: Error: Can't resolve 'ngx-treeview' in 'D:\WS\Source\App\ClientApp\app' 
    @ ./ClientApp/app/app.module.shared.ts 6:21-44 
    @ ./ClientApp/app/app.module.server.ts 
    @ ./ClientApp/boot-server.ts 

Le webpack.config. js est:

const path = require('path'); 
const webpack = require('webpack'); 
const merge = require('webpack-merge'); 
const CheckerPlugin = require('awesome-typescript-loader').CheckerPlugin; 

module.exports = (env) => { 
    // Configuration in common to both client-side and server-side bundles 
    const isDevBuild = !(env && env.prod); 
    const sharedConfig = { 
     stats: { modules: false }, 
     context: __dirname, 
     resolve: { extensions: [ '.js', '.ts' ] }, 
     output: { 
      filename: '[name].js', 
      publicPath: '/dist/' // Webpack dev middleware, if enabled, handles requests for this URL prefix 
     }, 
     module: { 
      rules: [ 
       { test: /\.ts$/, include: /ClientApp/, use: ['awesome-typescript-loader?silent=true', 'angular2-template-loader'] }, 
       { test: /\.html$/, use: 'html-loader?minimize=false' }, 
       { test: /\.css$/, use: [ 'to-string-loader', isDevBuild ? 'css-loader' : 'css-loader?minimize' ] }, 
       { test: /\.(png|jpg|jpeg|gif|svg)$/, use: 'url-loader?limit=25000' } 
      ] 
     }, 
     plugins: [new CheckerPlugin()] 
    }; 

    // Configuration for client-side bundle suitable for running in browsers 
    const clientBundleOutputDir = './wwwroot/dist'; 
    const clientBundleConfig = merge(sharedConfig, { 
     entry: { 'main-client': './ClientApp/boot-client.ts' }, 
     output: { path: path.join(__dirname, clientBundleOutputDir) }, 
     plugins: [ 
      new webpack.DllReferencePlugin({ 
       context: __dirname, 
       manifest: require('./wwwroot/dist/vendor-manifest.json') 
      }) 
     ].concat(isDevBuild ? [ 
      // Plugins that apply in development builds only 
      new webpack.SourceMapDevToolPlugin({ 
       filename: '[file].map', // Remove this line if you prefer inline source maps 
       moduleFilenameTemplate: path.relative(clientBundleOutputDir, '[resourcePath]') // Point sourcemap entries to the original file locations on disk 
      }) 
     ] : [ 
      // Plugins that apply in production builds only 
      new webpack.optimize.UglifyJsPlugin() 
     ]) 
    }); 

    // Configuration for server-side (prerendering) bundle suitable for running in Node 
    const serverBundleConfig = merge(sharedConfig, { 
     resolve: { mainFields: ['main'] }, 
     entry: { 'main-server': './ClientApp/boot-server.ts' }, 
     plugins: [ 
      new webpack.DllReferencePlugin({ 
       context: __dirname, 
       manifest: require('./ClientApp/dist/vendor-manifest.json'), 
       sourceType: 'commonjs2', 
       name: './vendor' 
      }) 
     ], 
     output: { 
      libraryTarget: 'commonjs', 
      path: path.join(__dirname, './ClientApp/dist') 
     }, 
     target: 'node', 
     devtool: 'source-map' 
    }); 

    return [clientBundleConfig, serverBundleConfig]; 
}; 

Je vois que la vendor.manifest.json ne possède pas d'entrée pour le module de noeud NGX-TreeView.

Quelqu'un peut-il me aider comment résoudre cette erreur:

ERROR in ./ClientApp/app/app.module.shared.ts 
    Module not found: Error: Can't resolve 'ngx-treeview' in 'D:\WS\Source\App\ClientApp\app' 
    @ ./ClientApp/app/app.module.shared.ts 6:21-44 
    @ ./ClientApp/app/app.module.server.ts 
    @ ./ClientApp/boot-server.ts 

Merci à l'avance.

Répondre

0

essayer

import {} TreeviewModule de 'NGX-treeview/src';