2017-02-07 41 views
3

從Webpack 1升級到2後出現錯誤。配置未更改,且之前沒有錯誤。請幫忙!謝謝!升級到Webpack 2後出現錯誤。請求的路徑包含索引爲0的未定義段

的WebPack配置:

const path = require('path'); 
const root = path.resolve(__dirname); 
const webpack = require('webpack'); 
const merge = require('webpack-merge'); 
const ArchivePlugin = require('webpack-archive-plugin'); 
const CleanWebpackPlugin = require('clean-webpack-plugin'); 

let config = { 
    cache: true, 
    devtool: 'cheap-module-source-map', 
    entry: { 
     polyfills: './src/polyfills.browser.ts', 
     vendor: './src/vendor.browser.ts', 
     main: './src/main.browser.ts' 
    }, 
    output: { 
     path: path.join(__dirname, 'dist/output'), 
     filename: '[name].bundle.js', 
     sourceMapFilename: '[name].map', 
     chunkFilename: '[id].chunk.js' 
    }, 
    resolve: { 
     extensions: ['.ts', '.js'], 
     alias: {jquery: 'jquery/dist/jquery'} 
    }, 
    devServer: { 
     inline: true, 
     contentBase: 'src', 
     historyApiFallback: true, 
     watchOptions: {aggregateTimeout: 300, poll: 1000} 
    }, 
    node: { 
     net: 'empty', 
     global: true, 
     crypto: 'empty', 
     module: false, 
     Buffer: false, 
     clearImmediate: false, 
     setImmediate: false 
    }, 
    plugins: [ 
     new webpack.optimize.CommonsChunkPlugin({ 
      name: ['main', 'vendor', 'polyfills'], 
      minChunks: Infinity 
     }), 
     new webpack.ProvidePlugin({ 
      $: "jquery", 
      jQuery: "jquery", 
      "window.jQuery": "jquery" 
     }), 
     new webpack.DefinePlugin({ 
      "require.specified": "require.resolve" 
     }) 
    ], 
    module: { 
     exprContextCritical: false, 
     rules: [{ 
      test: /\.ts$/, 
      loaders: ['awesome-typescript-loader', 'angular2-template-loader'] 
     }, { 
      test: /\.css$/, 
      loaders: ['to-string-loader', 'style-loader', 'css-loader'] 
     }, { 
      test: /\.scss$/, 
      loaders: ["style-loader", "css-loader", "sass-loader"] 
     }, { 
      test: /\.json$/, 
      loader: 'raw-loader' 
     }, { 
      test: /\.html$/, 
      loader: 'raw-loader' 
     }, { 
      test: /\.(png|jpg|gif)(\?v=\d+\.\d+\.\d+)?$/, 
      loader: 'url-loader?limit=100000' 
     }, { 
      test: /\.(eot|com|json|ttf|woff|woff2)(\?v=\d+\.\d+\.\d+)?$/, 
      loader: "url-loader?limit=10000&mimetype=application/octet-stream" 
     }, { 
      test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, 
      loader: 'url-loader?limit=10000&mimetype=image/svg+xml' 
     }] 
    }, 
}; 

if (process.argv[1].indexOf('webpack-dev-server') === -1) { 
    module.exports = merge(config, { 
     plugins: [ 
      new CleanWebpackPlugin(['dist']), 
      new ArchivePlugin(), 
      new webpack.optimize.UglifyJsPlugin({output: {comments: false}}) 
     ] 
    }); 
} else { 
    module.exports = config; 
} 

這些都是在控制檯中顯示的錯誤。

vendor.bundle.js:57220 

EXCEPTION: Uncaught (in promise): Error: The requested path contains undefined segment at index 0 
Error: The requested path contains undefined segment at index 0 
    at validateCommands (http://localhost:3000/vendor.bundle.js:23790:19) [angular] 
    at Router.navigate (http://localhost:3000/vendor.bundle.js:22872:9) [angular] 
    at http://localhost:3000/main.bundle.js:15346:30 [angular] 
    at Object.onInvoke (http://localhost:3000/vendor.bundle.js:29990:37) [angular] 
    at Zone.run (http://localhost:3000/polyfills.bundle.js:17067:43) [angular => angular] 
    at http://localhost:3000/polyfills.bundle.js:17474:57 [angular] 
    at Object.onInvokeTask (http://localhost:3000/vendor.bundle.js:29981:37) [angular] 
    at ZoneDelegate.invokeTask (http://localhost:3000/polyfills.bundle.js:17228:40) [angular] 
    at Zone.runTask (http://localhost:3000/polyfills.bundle.js:17105:47) [<root> => angular] 
    at drainMicroTaskQueue (http://localhost:3000/polyfills.bundle.js:17372:35) [<root>] 
    at HTMLButtonElement.ZoneTask.invoke (http://localhost:3000/polyfills.bundle.js:17303:25) [<root>] 
ErrorHandler.handleError @ vendor.bundle.js:57225 
vendor.bundle.js:57225 

ORIGINAL STACKTRACE: 
ErrorHandler.handleError @ vendor.bundle.js:57225 
vendor.bundle.js:57226 

Error: Uncaught (in promise): Error: The requested path contains undefined segment at index 0 
Error: The requested path contains undefined segment at index 0 
    at validateCommands (vendor.bundle.js:23790) [angular] 
    at Router.navigate (vendor.bundle.js:22872) [angular] 
    at :3000/main.bundle.js:15346:30 [angular] 
    at Object.onInvoke (vendor.bundle.js:29990) [angular] 
    at Zone.run (polyfills.bundle.js:17067) [angular => angular] 
    at :3000/polyfills.bundle.js:17474:57 [angular] 
    at Object.onInvokeTask (vendor.bundle.js:29981) [angular] 
    at ZoneDelegate.invokeTask (polyfills.bundle.js:17228) [angular] 
    at Zone.runTask (polyfills.bundle.js:17105) [<root> => angular] 
    at drainMicroTaskQueue (polyfills.bundle.js:17372) [<root>] 
    at HTMLButtonElement.ZoneTask.invoke (polyfills.bundle.js:17303) [<root>] 
    at resolvePromise (polyfills.bundle.js:17440) [angular] 
    at :3000/polyfills.bundle.js:17477:17 [angular] 
    at Object.onInvokeTask (vendor.bundle.js:29981) [angular] 
    at ZoneDelegate.invokeTask (polyfills.bundle.js:17228) [angular] 
    at Zone.runTask (polyfills.bundle.js:17105) [<root> => angular] 
    at drainMicroTaskQueue (polyfills.bundle.js:17372) [<root>] 
    at HTMLButtonElement.ZoneTask.invoke (polyfills.bundle.js:17303) [<root>] 
ErrorHandler.handleError @ vendor.bundle.js:57226 

*****我要補充這些行張貼了這個問題,有太多的代碼參與*****

+0

你可以包含你的webpack配置源嗎? webpack 1和webpack 2配置有一些區別。 – ryandrewjohnson

+0

當然,它被添加到問題中。 – Nicholas

回答

2

我發現發生了什麼事。這不是關於webpack,但Angular2的變化

我試圖運行this.router.navigate([redirectUrl]);redirectUrlundefined。它導致了錯誤。

相關問題