Webpack Express无法parsing模块“fs”,请求依赖性是expression式

当我在我的项目中包含Express时,当我尝试使用webpack进行构build时,总会遇到这些错误。

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' } ] } } 

我试过了:

  1. 安装“FS”,但它不起作用
  2. 阅读某处以更改节点的fs属性。 它消除了错误警告,但我不认为这是一个好的永久解决scheme。

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

    时间:2496ms资产大小块大小名称bundle.js 761 kB 0 [emit] server bundle.js.map 956 kB 0 [emit] server + 119 hidden modules

    警告在./~/express/lib/view.js关键依赖关系:78:29-56依赖关系的请求是一个expression式@ ./~/express/lib/view.js 78:29-56错误在./ 〜/快递/ lib中/ view.js

    找不到模块:错误:无法parsing/ Users / clementoh / Desktop / boilerplate2 / node_modules / express / lib @ ./~/express/lib/view.js中的模块“fs”18:9-22错误./~/发送/ index.js

    未find模块:错误:无法parsing./~/etag/index中的/ Users / clementoh / Desktop / boilerplate2 / node_modules / send @ ./~/send/index.js 24:9-22错误中的模块“fs”。 JS

    找不到模块:错误:无法parsing/ Users / clementoh / Desktop / boilerplate2 / node_modules / etag @ ./~/etag/index.js中的模块“fs”22:12-25 ./~/destroy/index中的错误。 JS

    找不到模块:错误:无法parsing./~/mime/mime中的/ Users / clementoh / Desktop / boilerplate2 / node_modules / destroy @ ./~/destroy/index.js 14:17-30错误中的模块“fs”。 JS

    找不到模块:错误:无法parsing/ Users / clementoh / Desktop / boilerplate2 / node_modules / mime @ ./~/mime/mime.js中的模块'fs 2:9-22

       

网上收集的解决方案 "Webpack Express无法parsing模块“fs”,请求依赖性是expression式"

只是发布一个答案,因为不是每个人都阅读关于SO的评论。 @ Aurora0001钉了它。 Webpack的configuration需要有这样的设置:

 "target": "node" 

我在一个堆栈Angular 2 – Electron – Webpack和我需要使用FS进入我的服务,我终于find了如何做:

1)在你的webpack.common.js里面,指定target:'electron-renderer'

2)在你的服务或组件中: import * as fs from 'fs'; 并像使用节点项目一样使用fs。

希望它有帮助!

我通过两个步骤解决了这个问题:

  1. 删除node_modules目录

  2. target:'node'添加到webpackconfiguration文件中

然后运行npm install 。 它对我很好。