javascript - 配置webpack-dev-server失败报错,求大侠路见不平

 好富饶_152 发布于 2022-11-18 21:39

这是我的配置

var webpack          = require('webpack');
var webpackDevServer = require('webpack-dev-server');
var wecpackConfig    = module.exports = {};// init object

// input
wecpackConfig.entry  = {
  app:[
    './app.js',

    './bower_components/ratchet/dist/css/ratchet.css',
    './bower_components/font-awesome/css/font-awesome.css'
  ],
};

wecpackConfig.output = {
  path:'./dist',
  filename: '[name].js'
};// output

//doc loader
wecpackConfig.module = {
  loaders : [
    { 
      test: /\.css$/, 
      loader: 'style!css'
    },
    { 
      test: /\.vue$/, 
      loader: 'vue'
    },
    { test: /\.js$/, 
      loader: 'babel'
    },
    { 
      test: /\.(eot(|\?v=4.5.0)|woff(|\?v=4.5.0)|woff2(|\?v=4.5.0)|ttf(|\?v=4.5.0)|svg(|\?v=4.5.0))$/, 
      loader: 'file'
    },
  ]
};

wecpackConfig.plugins = [new webpack.HotModuleReplacementPlugin()];
wecpackConfig.entry.app.unshift("webpack-dev-server/client?http://localhost:9999", "webpack/hot/dev-server");
var compiler = webpack(wecpackConfig);
var server = new webpackDevServer(compiler, {
  hot: true
});
server.listen(9999);

这是报错的信息

/home/tigerb/github/easy-vue/node_modules/webpack-dev-server/node_modules/webpack-dev-middleware/middleware.js:105
            if(err) throw err;
                    ^
Error: invalid argument
    at pathToArray (/home/tigerb/github/easy-vue/node_modules/webpack-dev-server/node_modules/webpack-dev-middleware/node_modules/memory-fs/lib/MemoryFileSystem.js:44:10)
    at MemoryFileSystem.mkdirpSync (/home/tigerb/github/easy-vue/node_modules/webpack-dev-server/node_modules/webpack-dev-middleware/node_modules/memory-fs/lib/MemoryFileSystem.js:139:13)
    at MemoryFileSystem.(anonymous function) [as mkdirp] (/home/tigerb/github/easy-vue/node_modules/webpack-dev-server/node_modules/webpack-dev-middleware/node_modules/memory-fs/lib/MemoryFileSystem.js:279:34)
    at Compiler. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compiler.js:229:25)
    at Compiler.applyPluginsAsync (/home/tigerb/github/easy-vue/node_modules/webpack/node_modules/tapable/lib/Tapable.js:60:69)
    at Compiler.emitAssets (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compiler.js:226:7)
    at Watching. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compiler.js:54:18)
    at /home/tigerb/github/easy-vue/node_modules/webpack/lib/Compiler.js:403:12
    at Compiler.next (/home/tigerb/github/easy-vue/node_modules/webpack/node_modules/tapable/lib/Tapable.js:67:11)
    at Compiler. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/CachePlugin.js:40:4)
    at Compiler.applyPluginsAsync (/home/tigerb/github/easy-vue/node_modules/webpack/node_modules/tapable/lib/Tapable.js:71:13)
    at Compiler. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compiler.js:400:9)
    at Compilation. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:577:13)
    at Compilation.applyPluginsAsync (/home/tigerb/github/easy-vue/node_modules/webpack/node_modules/tapable/lib/Tapable.js:60:69)
    at Compilation. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:572:10)
    at Compilation.applyPluginsAsync (/home/tigerb/github/easy-vue/node_modules/webpack/node_modules/tapable/lib/Tapable.js:60:69)
    at Compilation. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:567:9)
    at Compilation.applyPluginsAsync (/home/tigerb/github/easy-vue/node_modules/webpack/node_modules/tapable/lib/Tapable.js:60:69)
    at Compilation. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:563:8)
    at Compilation.applyPluginsAsync (/home/tigerb/github/easy-vue/node_modules/webpack/node_modules/tapable/lib/Tapable.js:60:69)
    at Compilation.seal (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:525:7)
    at Compiler. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compiler.js:397:15)
    at /home/tigerb/github/easy-vue/node_modules/webpack/node_modules/tapable/lib/Tapable.js:103:11
    at Compilation. (/home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:445:10)
    at /home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:417:12
    at /home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:332:10
    at /home/tigerb/github/easy-vue/node_modules/webpack/node_modules/async/lib/async.js:52:16
    at done (/home/tigerb/github/easy-vue/node_modules/webpack/node_modules/async/lib/async.js:246:17)
    at /home/tigerb/github/easy-vue/node_modules/webpack/node_modules/async/lib/async.js:44:16
    at /home/tigerb/github/easy-vue/node_modules/webpack/lib/Compilation.js:332:10
4 个回答
  • output.path配置的不对,要配置绝对路径,如下:

    output: {
        path: __dirname + '/assets/',
        publicPath: './assets/',
        filename: 'bundle.js'
    }
    2022-11-18 22:13 回答
  • output 上增加 publicPath

    2022-11-18 22:13 回答
  • 你应该设置 output.path 是一个绝对路径

    output: {
            path: __dirname + '/assets/',
            publicPath: './assets/',
            filename: 'bundle.js'
        },
    2022-11-18 22:13 回答
  • // webpack.confib.js

    var webpack = require("webpack");
    var vue = require("vue-loader");
    
    var ExtractTextPlugin = require("extract-text-webpack-plugin");
    var HtmlWebpackPlugin = require('html-webpack-plugin');
    var publicPath = "/static/";
    var plugins = [
            new ExtractTextPlugin("style.css?1.2.1"),
            new webpack.optimize.CommonsChunkPlugin('vendors', 'vendors.js')
        ];
    
    if(process.env.NODE_ENV === 'clean-build'){
        plugins[2] =
            new HtmlWebpackPlugin({
              filename: '../index.html',
              template: './static/template/index.html'
            });
    }
    
    var config = {
        entry: {
            app:['./src/main.coffee'],
            vendors: ['vue','jquery','vuex','vue-router']
        },
        output: {
            path: __dirname + publicPath,
            filename: 'app.js',
            publicPath: publicPath,
        },
        module: {
            loaders: [
            {
                test: /\.vue$/,
                loader: 'vue'
            },
            {
                test: /\.coffee$/,
                exclude: /node_modules|vue\/dist|vue-router\/|vue-loader\/|vue-hot-reload-api\//,
                loader: 'coffee'
            },
            {
              test: /\.less$/,
              loader: ExtractTextPlugin.extract(
                        "style", "css!less")
            },
            {
                test: /\.css$/,
                loader: ExtractTextPlugin.extract(
                    "style-loader", "css-loader?sourceMap!cssnext-loader")
            },
            ]
        },
        vue: {
            loaders: {
                css: ExtractTextPlugin.extract("css"),
                less: ExtractTextPlugin.extract("css!less-loader")
            }
        },
        resolve: {
            extensions: ['', '.coffee', '.js'],
        },
        plugins: plugins,
        devtool: "source-map",
    };
    module.exports = config;

    app.coffee

    webpack = require 'webpack'
    WebpackDevServer = require 'webpack-dev-server'
    config = require './webpack.config'
    
    config.entry.app.unshift "webpack-dev-server/client?http://localhost:9090", "webpack/hot/dev-server"
    
    config.plugins.push new webpack.HotModuleReplacementPlugin()
    
    proxy = {}
    
    app = new WebpackDevServer(webpack(config), {
      publicPath: config.output.publicPath,
      historyApiFallback: true,
      hot: true,
    });
    
    app.listen(9090);
    
    2022-11-18 22:13 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有