2017-03-09 26 views
1

從工作的WebPack V1配置遷移到的WebPack 2.但運行到一個錯誤,而試圖運行構建新屬性「映射」:的WebPack 2 - 無法在字符串

ERROR in ./src/index.jsx 
Module build failed: TypeError: /home/pierce/Projects/my-js-app/src/index.jsx: Cannot create property 'mappings' on string 

我有我的裝載機更新匹配新格式:

module: { 
    rules: [ 
    { 
     test: /\.(js|jsx)$/, 
     exclude: /node_modules/, 
     loader: "babel-loader" 
    }, 
    { 
     test: /\.(jpg|png)$/, 
     loader: 'file-loader', 
     query: { 
     name: '[path][name].[hash].[ext]', 
     }, 
    }, 
    { 
     test: /\.css$/, 
     loader: "style-loader!css-loader" 
    }, 
    { 
     test: /\.scss$/, 
     use: [ 
     { 
      loader: 'style-loader' 
     }, 
     { 
      loader: 'css-loader' 
     }, 
     { 
      loader: 'sass-loader', 
      options: { sourceMap: true } 
     } 
     ] 
    }, 
    { 
     test: /\.(woff|woff2|eot|ttf|svg)(\?v=\d+\.\d+\.\d+)?/, 
     loader: 'url-loader', 
     query: { 
     limit: 100000 
     } 
    }, 
    { 
     test: /\.icon-svg$/, 
     use: [{loader:'babel-loader'}, {loader: 'svg-react-loader'}] 
    }, 
    // Bootstrap 3 
    { 
     test: /bootstrap-sass\/assets\/javascripts\//, 
     loader: 'imports-loader?jQuery=jquery' 
    } 
    ] 
}, 

就好像某些東西沒有像之前那樣編譯,因此導致TypeError。

回答

5

原來我是兩次babelifing。

如果你也分裂的webpack.config.js到您不同的環境不同的文件,確保webpack.dev.config.js不包括babel-loader條目;如果你不webpack.base.config.js

否則,如果您第二次使用加載器兩次會導致錯誤。這不是一個Webpack 2錯誤,而是一個webpack splitting-configs-and-missing-a-thing-error錯誤

+0

簡單完美。 – user2355058

1

編譯時遇到類似問題。發現我使用babel loader的.js.jsx都是。

刪除.jsx並按預期工作。

我的webpack.config.js的片段看起來像這樣。

{ 
    test: /\.js$/, 
    exclude: [/(node_modules)/], 
    use: [ 
     { 
      loader: 'react-hot-loader' 
     }, 
     { 
      loader: 'babel-loader', 
      options: { 
       presets: ['react', 'es2015', 'stage-0'], 
       plugins: [ 
        'transform-class-properties', 
        'transform-decorators-legacy' 
       ] 
      } 
     } 
    ] 
} 
0

萬一是別人有同樣的問題,我不得不從裝載機刪除以下爲它工作

 { 
     test: /\.jsx?$/, 
     use: ['react-hot-loader/webpack'] 
    }