无法找到预设" es2015"相对于新项目的目录

时间:2016-07-26 14:08:09

标签: reactjs webpack babel

我尝试了此处列出的所有选项和其他网站,但似乎都没有。

我能够为我的第一个测试应用程序(MyApp)正确安装webpack reactjs和其他组件。

对于我的下一个应用程序项目,我想利用第一个应用程序中的所有npm-modules,这样我就不必再次下载所有模块并将它们集中在一起。

然而,我一直有关于失踪的错误" es2015"。我的第一个应用项目下的webpack没有报告此问题。奇怪的是,即使我将预设从es2015更改为XXes2015,我仍然会收到相同的消息。

我的webpack.config.js:

var path = require('path');

var isDev=true;
const cssModulesNames = `${isDev ? '[path][name]__[local]__' : ''}[hash:base64:5]`;


var config = {

    entry:  path.resolve(__dirname, 'js\\main.js'),
    output: {
        path: path.resolve(__dirname, '.'),
        filename: '.\\bundle.js'
    },

    resolveLoader: {

         modulesDirectories:  [ '../../../../Documents/API/react/examples/MyApp/node_modules'   ]
    },
    module: {
        loaders: [{
            test: /\.jsx?$/,
            loader: 'babel',
            query:
            {
                presets:   [ 'es2015', 'react',"stage-0"]

            }
        }]
       }

       };

    module.exports = config;

我的package.jason:

  {
     "name": "App1",
     "version": "1.13.1",
     "description": "",
     "main": ".",
     "dependencies": {
    "babel-core": "latest",
       "babel-loader": "latest",
       "babel-preset-es2015": "latest",
       "babel-preset-react": "latest",
       "babel-preset-stage-0": "latest"
     },
     "devDependencies": {},
     "scripts": {
       "test": "jest --verbose"
     },
     "jest": {
           "scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
           "unmockedModulePathPatterns": [
               "<rootDir>/node_modules/react",
               "<rootDir>/node_modules/react-dom",
               "<rootDir>/node_modules/react-addons-test-utils",
               "<rootDir>/node_modules/fbjs"
           ]
       },
     "author": "XX",
     "license": "ISC"
   }

我的.bablrc:

{     "presets": ["es2015", "stage-0", "react"]   }

如果我在webpack.config.js或.babelrc中将条目es2015更改为esXX2015,则会出现同样的错误。我希望它能找到不同的预设。

希望有人可以更多地了解这一点并帮助我!

感谢。

4 个答案:

答案 0 :(得分:0)

确保您的文件名是:.babelrc而不是.bablrc

您可以尝试在webpack.config上添加babel-loader

loader: 'babel'更改为loader: 'babel-loader'

答案 1 :(得分:0)

您希望resolveLoader.modulesDirectories配置参数告诉babel在哪里可以找到预设。 webpack使用此参数来查找加载器(例如babel-loader),但不能查找babel。

答案 2 :(得分:0)

你的问题中有一个拼写错误。它应该是.babelrc而不是.bablrc

`.babelrc'的内容如下所示。 order is important

stage-0 → ES2015 → JSX → ES5

{
  "presets": [
    "stage-0",
    "es2015",
    "react"
  ]
}

我建议您在.babelrc文件或webpack.config文件中预设,以保持单一的事实来源。因此,请删除webpack.config中的查询条目,并添加排除条目以忽略 node-modeuls 文件夹中的 js / jsx 文件(将其更新如下...)

loaders: [{
    test: /\.jsx?$/,
    exclude: /node-modules/,  
    loader: 'babel'
}]

答案 3 :(得分:0)

我终于设法通过创建到先前项目node_module目录的节点模块符号链接来解决问题。虽然这实现了我想要的,我有点不高兴我尝试的webpack.config.js中的各种设置无法实现这一点。希望有人提供正确的设置,以便webpack行为更加清晰(至少对我来说)。希望这有助于其他人试图解决类似的问题...