2017-10-18 108 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

相关问题