2017-03-30 19 views
18

tôi nhận được lỗi sau:Configuration.resolve có một tài sản vô danh 'root'

đối tượng cấu hình không hợp lệ. Webpack đã được khởi tạo bằng cách sử dụng đối tượng cấu hình không khớp với giản đồ API. - configuration.resolve có thuộc tính không xác định là 'root'. Các thuộc tính này hợp lệ: object {alias ?, aliasFields ?, cachePredicate ?, descriptionFiles ?, enforceExtension ?, executeceModuleExtension ?, extensions ?, fileSystem ?, mainFields ?, mainFiles ?, moduleExtensions ?, modules ?, plugins ?, resolver ?, symlinks ?, unsafeCache ?, useSyncFileSystemCalls? }

Tôi sử dụng webpack 2.3.2.


My webpack.config.js trông như thế này:

module.exports= { 
    entry:'./public/app.jsx', 
    output: { 
    path: __dirname, 
    filename:'./public/bundle.js' 
    }, 
    resolve: { 
    root: __dirname, 
    alias:{ 
     Mod1: 'public/components/mod1.jsx', 
     Mod2:'public/components/mod2.jsx', 
     Mod3: 'public/components/mod3.jsx' 
    }, 
    extensions: ['*','.js','.jsx'] 
    }, 
    module :{ 
    loaders:[{ 
     loader :'babel-loader', 
     query :{ 
     presets:['react','es2015','es2017'] 
     }, 
     test:/\.jsx?$/, 
     exclude:/(node_modules|bower_components)/ 
    }] 
    } 
}; 

Trả lời

30

resolve.root là Webpack 1 cấu hình và không tồn tại cho Webpack 2.

Đối với Webpack 2 bạn có thể sử dụng resolve.modules: https://webpack.js.org/configuration/resolve/#resolve-modules

module.exports= { 
    entry:'./public/app.jsx', 
    output: { 
    path: __dirname, 
    filename:'./public/bundle.js' 
    }, 
    resolve: { 
    modules: [__dirname, 'node_modules'], 
    alias:{ 
     Mod1: 'public/components/mod1.jsx', 
     Mod2:'public/components/mod2.jsx', 
     Mod3: 'public/components/mod3.jsx' 
    }, 
    extensions: ['*','.js','.jsx'] 
    }, 
    module :{ 
    rules:[{ 
     use : 'babel-loader', 
     query :{ 
     presets:['react','es2015','es2017'] 
     }, 
     test: /\.jsx?$/, 
     exclude: /(node_modules|bower_components)/ 
    }] 
    } 
}; 

Tôi cũng đã cập nhật module.loaders ->module.rules vì đây là không được chấp nhận trong Webpack 2.

1

Bạn đã cố gắng loại bỏ ĐƯỜNG DÂY 8? Liệu nó thông qua bất kỳ lỗi nào?

Có thể bạn đã đoán nó đang ném một lỗi khi bạn đang cố đặt thuộc tính không hợp lệ.

Có khả năng là các hướng dẫn bạn có thể đã theo dõi khi định cấu hình webpack đã lỗi thời.

Hãy sử dụng nó mà không có LINE 8 và cho tôi biết nếu sự cố vẫn tiếp diễn và chúng tôi có thể khắc phục sự cố cùng nhau.

Các vấn đề liên quan