2017-10-18 110 views
1

我正在使用babel-core^5.4.7babel-loader^5.1.2 with webpack。我也使用mobx^3.3.1和mobx-react^4.3.3版本。現在我的問題是,當我試圖通過敲擊NPM運行腕錶打造我的項目:它的WebPack拋出未知選項:package.json.presets未知選項:package.json.presets

這裏我的package.json

"devDependencies": { 
    "babel-core": "^5.4.7", 
    "babel-eslint": "^3.1.9", 
    "babel-loader": "^5.1.2", 
    "babel-plugin-react-transform": "^1.1.1", 
    "babel-plugin-transform-decorators-legacy": "^1.3.4", 
    "babel-preset-es2015": "^6.24.1", 
    "babel-preset-react": "^6.24.1", 
    "babel-preset-stage-1": "^6.24.1", 
    .... 
    "webpack": "^1.9.6", 
    "webpack-dev-middleware": "^1.2.0", 
    "webpack-hot-middleware": "^2.0.0" 
}, 
"dependencies": { 
    "mobx": "^3.3.1", 
    "mobx-react": "^4.3.3", 
    "prop-types": "^15.6.0", 
    "react": "16.0.0", 
    "react-dnd-html5-backend": "^2.5.4", 
    "react-dom": "16.0.0", 
    .... 
}, 
"babel": { 
    "presets": ["es2015", "react", "stage-1"], 
    "plugins": ["transform-decorators-legacy"] 
} 

這裏我webpack.config.dev.js

var path = require('path'); 
var webpack = require('webpack'); 
var src = path.join(__dirname, 'engine'); 
var dest = path.join(__dirname, 'assets/builder'); 

module.exports = { 
    devtool: 'cheap-module-source-map', 
    entry: [ 
    src + '/index.jsx' 
    ], 
    output: { 
    path: dest, 
    filename: 'bundle.js', 
    publicPath: '/assets/builder/' 
    }, 
    resolve: { 
    extensions: ['', '.json', '.js', '.jsx'], 
    modulesDirectories: ['node_modules', 'bower_components', src] 
    }, 
    plugins: [ 
    new webpack.NoErrorsPlugin(), 
    new webpack.DefinePlugin({ 
     'process.env': { 
     'FREE': process.argv.indexOf('--free') !== -1 ? JSON.stringify("free"): JSON.stringify("pro") 
     } 
    }), 
    ], 
    module: { 
    loaders: [ 
     {test: /\.jsx?$/, loaders: ['babel?stage=0'], include: src}, 
     {test: /\.js?$/, loaders: ['babel?stage=0'], include: src}, 
     {test: /\.less$/, loader: 'style!css!less'}, 
     {test: /\.css$/, loader: 'style!css'}, 
     {test: /\.jpe?g$|\.gif$|\.png$/, loader: "url-loader"}, 

     {test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000&minetype=application/font-woff"}, 
     {test: /\.ttf?(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "url-loader?limit=10000&minetype=font/ttf"}, 
     {test: /\.(eot|svg)(\?v=[0-9]\.[0-9]\.[0-9])?$/, loader: "file-loader"} 
    ] 
    } 
}; 

這裏我mobx存儲與裝飾@observable

export default class ElementStore { 

     @observable path = null, 
     @observable visible = false, 
     @observable list = sortElementsByName(elements), 

     handle(handlerName, {path}) { 
     switch (handlerName) { 
      case HIDE_ELEMENTS: 
      // do something.. 
      break; 
      case SHOW_ELEMENTS: 
      // do something.. 
      break; 
     } 
     } 
    } 

和錯誤消息是

ERROR in ./engine/index.jsx 
Module build failed: ReferenceError: [BABEL] /Users/iftekhersunny/Documents/code/quix/src/lib_quix/engine/index.jsx: Unknown option: /Users/iftekhersunny/Documents/code/quix/src/lib_quix/package.json.presets 

爲什麼預設是未知選項???

回答

2

presets是通天6.x的一個配置的標誌,和你想用巴貝爾5巴貝爾5使用它是超級老,只需用巴貝爾6

+0

babel-loader版本 –

+0

現在出現此錯誤模塊構建失敗:TypeError:fileSystem.statSync不是函數 at module.exports(/ Users/iftekhersunny/Documents/code/quix/src/lib_quix/node_modules/babel-loader/lib/utils/exists .js:7:25) –

+0

你似乎也在使用Webpack的老版本。舊版Webpack中不存在該st​​atSync API。您是否升級現有項目?看起來好像你是新鮮安裝的,沒有一個會成爲問題。使用當前版本的babel-loader和Webpack應該可以正常工作。 – loganfsmyth

0

首先從package.json文件中刪除babel選項,並在項目的根目錄下創建一個.babelrc文件。

.babelrc文件

{ 
    "presets": ["es2015", "react","stage-1"], 
    "plugins": [ 
    "transform-decorators-legacy" 
    ] 
} 

希望工程

+0

現在收到這個錯誤未知.babelrc.presets選項:( –

+0

退房此鏈接https://github.com/babel/babel-loader/issues/132 可它幫助你 – Syed

相關問題