2016-12-04 21 views
9

Khi tôi bao gồm Express trong dự án của tôi, tôi luôn luôn nhận được những lỗi này khi tôi cố gắng xây dựng với webpack.Webpack Express không thể giải quyết mô-đun 'fs', yêu cầu phụ thuộc là biểu hiện

webpack.config.dev.js

var path = require("path") 

module.exports = { 
    entry: { 
    "server": "./server/server.ts" 
    }, 
    output: { 
    path: path.resolve(__dirname, "dist"), 
    filename: "bundle.js", 
    publicPath: "/public/" 
    }, 
    module: { 
    loaders: [ 
     { 
     test: /\.ts(x?)$/, 
     exclude: /node_modules/, 
     loader: "ts-loader" 
     }, { 
     test: /\.js(x?)$/, 
     exclude: /node_modules/, 
     loader: "babel-loader" 
     }, { 
     test: /\.json$/, 
     loader: "json-loader" 
     }, { 
     test: /\.scss$/, 
     exclude: /node_modules/, 
     loaders: ["style-loader", "css-loader", "postcss-loader", "sass-loader"] 
     }, { 
     test: /\.css$/, 
     loader: ["style-loader", "css-loader", "postcss-loader"] 
     }, { 
     test: /\.(jpe?g|gif|png|svg)$/i, 
     loader: 'url-loader?limit=10000' 
     } 
    ] 
    } 
} 

Tôi đã thử:

  1. Cài đặt 'fs' nhưng nó không hoạt động
  2. đã đọc ở đâu đó để thay đổi fs nút bất động sản. Nó loại bỏ các cảnh báo lỗi nhưng tôi không nghĩ rằng đây là một giải pháp lâu dài tốt.

    module.exports = { 
        node: { 
        fs: "empty" 
        } 
    } 
    

    Thời gian: 2496ms Asset Kích Chunks Chunk Tên bundle.js 761 kB 0 [phát ra] máy chủ bundle.js.map 956 kB 0 [phát ra] máy chủ + 119 module ẩn

    CẢNH BÁO trong ./~/express/lib/view.js Các phụ thuộc quan trọng: 78: 29-56 yêu cầu phụ thuộc là một biểu thức @ ./~/express/lib/view.js 78: 29-56 L ERI in ./~/express/lib/view.js

    Mô-đun không tìm thấy: Lỗi: Không thể giải quyết mô-đun 'fs' trong/Users/clementoh/Desktop/boilerplate2/node_modules/express/lib @ ./~/express/lib/view.js 18: 9-22 LRI ./~/send/index.js

    Mô-đun không tìm thấy: Lỗi: Không thể giải quyết mô-đun 'fs' trong/Users/clementoh/Desktop/boilerplate2/node_modules/gửi @ ./~/send/index.js 24 : 9-22 ERROR trong ./~/etag/index.js

    Mô-đun không tìm thấy: Lỗi: không thể giải quyết module 'fs' trong/Users/clementoh/Desktop/boilerplate2/node_modules/etag @ ./~ /etag/index.js 22: 12-25 L ERI trong ./~/destroy/index.j s

    Mô-đun không tìm thấy: Lỗi: Không thể giải quyết module 'fs' trong/Users/clementoh/Desktop/boilerplate2/node_modules/hủy @ ./~/destroy/index.js 14: 17-30 ERROR trong. /~/mime/mime.js

    Mô-đun không tìm thấy: Lỗi: Không thể giải quyết mô-đun 'fs' trong/Users/clementoh/Desktop/boilerplate2/node_modules/mime @ ./~/mime/mime.js 2: 9-22

+5

Bạn đã thử thêm '" target ":" node "' vào 'webpack.config.js' của bạn chưa? – Aurora0001

+0

Oh haha ​​thực sự đã khắc phục vấn đề 'fs' :) Làm cách nào để giải quyết cảnh báo? - 'Phụ thuộc quan trọng: 78: 29-56 yêu cầu phụ thuộc là biểu thức @ ./~/express/lib/view.js 78: 29-56 ERROR in./~/Express/lib/view.js' – Clement

+0

Tôi nhớ là có thể loại bỏ được nhiều thứ như thế này bằng cách đơn giản phá hủy thư mục 'node_modules' và thực hiện lại' npm install'. – Roope

Trả lời

15

Chỉ cần đăng câu trả lời, vì không phải ai cũng đọc nhận xét về SO. @ Aurora0001 đóng đinh nó. cấu hình Webpack của cần có nhóm này:

"target": "node" 
+1

Nếu tôi đang xây dựng một ứng dụng web, có đúng là đặt mục tiêu là 'nút' không? –

+1

@AbhishekNalin không, nó không phải là. Bạn nên đặt 'target: web' –

+0

ở đâu trong webpack.config tôi nên thêm cái này? –

2

Tôi đang trên một chồng kiễu góc 2 - Electron - Webpack và tôi cần phải sử dụng fs vào dịch vụ của tôi, cuối cùng tôi thấy làm thế nào để làm:

1) bên trong webpack.common.js của bạn, chỉ định target:'electron-renderer'

2) bên trong dịch vụ hoặc thành phần của bạn: import * as fs from 'fs'; và sử dụng fs như sẽ làm cho dự án nút.

Hy vọng điều đó sẽ hữu ích!

0

tôi giải quyết vấn đề này bằng hai bước:

  1. Xóa node_modules thư mục

  2. Thêm target:'node' vào webpack tập tin cấu hình

Sau đó chạy npm install. Nó làm việc cho tôi tốt.

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