鍍金池/ 問答/數(shù)據(jù)庫  HTML/ webpack編譯報錯,請問是什么問題

webpack編譯報錯,請問是什么問題

編譯的時候報錯了

$ ./node_modules/.bin/webpack
Invalid configuration object. Webpack has been initialised using a configuration object that does not match the API schema.
 - configuration has an unknown property 'babel'. These properties are valid:
   object { amd?, bail?, cache?, context?, dependencies?, devServer?, devtool?, entry, externals?, loader?, module?, name?, node?, output?, parallelism?, performance?, plugins?, profile?, recordsInputPath?, recordsOutputPath?, recordsPath?, resolve?, resolveLoader?, stats?, target?, watch?, watchOptions? }
   For typos: please correct them.
   For loader options: webpack 2 no longer allows custom properties in configuration.
     Loaders should be updated to allow passing options via loader options in module.rules.
     Until loaders are updated one can use the LoaderOptionsPlugin to pass these options to the loader:
     plugins: [
       new webpack.LoaderOptionsPlugin({
         // test: /\.xxx$/, // may apply this only for some modules
         options: {
           babel: ...
         }
       })
     ]
 - configuration.resolve.extensions[0] should not be empty.

我的webpack.config.js配置如下,請問是什么問題?

var path = require('path');
// NodeJS中的Path對象,用于處理目錄的對象,提高開發(fā)效率。
// 模塊導入
module.exports = {
    // 入口文件地址,不需要寫完,會自動查找
    entry: './src/main',
    // 輸出
    output: {
        path: path.join(__dirname, './dist'),
        // 文件地址,使用絕對路徑形式
        filename: '[name].js',
        //[name]這里是webpack提供的根據(jù)路口文件自動生成的名字
        publicPath: '/dist/'
        // 公共文件生成的地址
    },
    // 服務(wù)器配置相關(guān),自動刷新!
    devServer: {
        historyApiFallback: true,
        hot: false,
        inline: true,
        grogress: true,
    },
    // 加載器
    module: {
        // 加載器
        loaders: [
        // 解析.vue文件
            { test: /\.vue$/, loader: 'vue' },
        // 轉(zhuǎn)化ES6的語法
            { test: /\.js$/, loader: 'babel', exclude: /node_modules/ },
        // 編譯css并自動添加css前綴
            { test: /\.css$/, loader: 'style!css!autoprefixer'},
        //.scss 文件想要編譯,scss就需要這些東西!來編譯處理
        //install css-loader style-loader sass-loader node-sass --save-dev
            { test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
        // 圖片轉(zhuǎn)化,小于8K自動轉(zhuǎn)化為base64的編碼
            { test: /\.(png|jpg|gif)$/, loader: 'url-loader?limit=8192'},
        //html模板編譯?
            { test: /\.(html|tpl)$/, loader: 'html-loader' },
        ]
    },
    // .vue的配置。需要單獨出來配置,其實沒什么必要--因為我刪了也沒保錯,不過這里就留這把,因為官網(wǎng)文檔里是可以有單獨的配置的。
    vue: {
        loaders: {
            css: 'style!css!autoprefixer',
        }
    },
    // 轉(zhuǎn)化成es5的語法
    babel: {
        presets: ['es2015'],
        plugins: ['transform-runtime']
    },
    resolve: {
        // require時省略的擴展名,如:require('module') 不需要module.js
        extensions: ['', '.js', '.vue'],
        // 別名,可以直接使用別名來代表設(shè)定的路徑以及其他
        alias: {
            filter: path.join(__dirname, './src/filters'),
            components: path.join(__dirname, './src/components')
        }
    },
    // 開啟source-map,webpack有多種source-map,在官網(wǎng)文檔可以查到
    devtool: 'eval-source-map'
};

安裝組件如下:

{
  "name": "webpack2",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "autoprefixer-loader": "^3.2.0",
    "babel": "^6.23.0",
    "babel-core": "^6.26.0",
    "babel-loader": "^7.1.2",
    "babel-plugin-transform-runtime": "^6.23.0",
    "babel-preset-es2015": "^6.24.1",
    "babel-runtime": "^6.26.0",
    "css-loader": "^0.28.7",
    "file-loader": "^1.1.5",
    "html-loader": "^0.5.1",
    "node-sass": "^4.7.2",
    "sass-loader": "^6.0.6",
    "style-loader": "^0.19.0",
    "url-loader": "^0.6.2",
    "vue": "^2.5.8",
    "vue-html-loader": "^1.2.4",
    "vue-loader": "^13.5.0",
    "vue-router": "^3.0.1",
    "webpack": "^3.8.1",
    "webpack-dev-server": "^2.9.4"
  }
}
回答
編輯回答
蟲児飛

css: 'style!css!autoprefixer'改成css: 'style-loader!css-loader!autoprefixer-loader'這種寫法試試?

2018年1月23日 22:34
編輯回答
枕邊人

如果是webpack2.0以上的話,loader是不能簡寫的,如,babel-loader不能簡寫成babel了

2017年1月20日 05:52