鍍金池/ 問答/數(shù)據(jù)庫  HTML/ webpack編譯報(bào)錯(cuò),請(qǐng)問是什么問題

webpack編譯報(bào)錯(cuò),請(qǐng)問是什么問題

編譯的時(shí)候報(bào)錯(cuò)了

$ ./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配置如下,請(qǐng)問是什么問題?

var path = require('path');
// NodeJS中的Path對(duì)象,用于處理目錄的對(duì)象,提高開發(fā)效率。
// 模塊導(dǎo)入
module.exports = {
    // 入口文件地址,不需要寫完,會(huì)自動(dòng)查找
    entry: './src/main',
    // 輸出
    output: {
        path: path.join(__dirname, './dist'),
        // 文件地址,使用絕對(duì)路徑形式
        filename: '[name].js',
        //[name]這里是webpack提供的根據(jù)路口文件自動(dòng)生成的名字
        publicPath: '/dist/'
        // 公共文件生成的地址
    },
    // 服務(wù)器配置相關(guān),自動(dòng)刷新!
    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并自動(dòng)添加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自動(dòng)轉(zhuǎn)化為base64的編碼
            { test: /\.(png|jpg|gif)$/, loader: 'url-loader?limit=8192'},
        //html模板編譯?
            { test: /\.(html|tpl)$/, loader: 'html-loader' },
        ]
    },
    // .vue的配置。需要單獨(dú)出來配置,其實(shí)沒什么必要--因?yàn)槲覄h了也沒保錯(cuò),不過這里就留這把,因?yàn)楣倬W(wǎng)文檔里是可以有單獨(dú)的配置的。
    vue: {
        loaders: {
            css: 'style!css!autoprefixer',
        }
    },
    // 轉(zhuǎn)化成es5的語法
    babel: {
        presets: ['es2015'],
        plugins: ['transform-runtime']
    },
    resolve: {
        // require時(shí)省略的擴(kuò)展名,如: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是不能簡(jiǎn)寫的,如,babel-loader不能簡(jiǎn)寫成babel了

2017年1月20日 05:52