Node.js 未找到模块:错误:Can';t解决';财政司司长';带网页包
我制作了一个小代码,用于按网页进行构建。源条目文件如下所示:Node.js 未找到模块:错误:Can';t解决';财政司司长';带网页包,node.js,webpack,Node.js,Webpack,我制作了一个小代码,用于按网页进行构建。源条目文件如下所示: import archiver from 'archiver' import request from 'request' import mkdirp from 'mkdirp' import Zip from 'node-zip' import Zlib from 'zlib' import path from 'path' import fs from 'fs' export default class myTestClass
import archiver from 'archiver'
import request from 'request'
import mkdirp from 'mkdirp'
import Zip from 'node-zip'
import Zlib from 'zlib'
import path from 'path'
import fs from 'fs'
export default class myTestClass {
constructor (config) {
super (config)
}
//......
}
网页包配置为:
var webpack = require('webpack');
var path = require('path')
module.exports = {
entry: [
path.resolve("./js/app.js")
],
output: {
path: path.resolve('./build'),
filename: "build.js"
},
module: {
loaders: [
{ test: /\.css$/, loader: 'style-loader!css-loader' },
{ test: /\.scss$/, loader: 'style!css!sass?sourceMap'},
{ test: /\.(png|jpg)$/, loader: 'url-loader?limit=8192'},
{ test: /\.json$/, loader: 'json-loader' },
{ test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader',
query: {
presets: ['es2015'],
plugins: ['transform-runtime']
}
}
]
},
resolve: {
modules: [
"./js",
"./node_modules"
],
extensions : ['.js', '.jsx', '.json']
},
resolveLoader: {
modules: ['node_modules']
},
node: {
console: true
},
plugins: [
new webpack.NoEmitOnErrorsPlugin(),
new webpack.ProvidePlugin({
'window.jQuery': 'jquery',
Promise: 'bluebird',
jQuery: 'jquery',
$: 'jquery'
})
]
};
主app.js只调用myTestClass:
import MyClass from './myTestClass.js'
module.exports = async function() {
const myCls = new MyClass();
return '';
};
运行webpack时,我遇到了许多相同的错误:
Module not found: Error: Can't resolve 'fs'
如果我在中跟踪评论,即
它可以构建,但在客户端上运行代码时,build.js会弹出一个错误。错误是:fs未定义。我认为这是因为节点的fs设置为空
var fs$ReadStream = fs.ReadStream
ReadStream.prototype = Object.create(fs$ReadStream.prototype)
ReadStream.prototype.open = ReadStream$open
你能解释一下如何解决这个问题吗?这是设置fs=empty的正确用法吗?如果正确,build.js有什么问题
谢谢大家! 您可以使用webpack.config.js中的以下代码在客户端要求fs
var fs = require('fs');
var nodeModules = {};
fs.readdirSync('node_modules')
.filter(function(x) {
return ['.bin'].indexOf(x) === -1;
})
.forEach(function(mod) {
nodeModules[mod] = 'commonjs ' + mod;
});
还可以添加内部module.exports
externals: nodeModules,
target: 'node',
这将有助于您在客户端内部要求fs。如果使用Webpack 4,我会遇到相同的错误:
Module not found: Error: Can't resolve 'fs' in ...
我通过将节添加到webpack.config.js
文件的根目录中修复了此错误:
。。。
节点:{
财政司司长:“空”,
},
...
在某些情况下,我使用了以下方法:
import { TRUE } from "node-sass";
我只是把它注释掉了。我到处跑,想弄清楚是什么改变了!寓意:有时这不仅仅是为了追求错误(因为我得到了各种各样的建议)。这也是关于回顾你所做的事情
以下是未注释代码的完整错误:
`WARNING in ./node_modules/node-sass/lib/binding.js 19:9-37
Critical dependency: the request of a dependency is an expression
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/fs.realpath/index.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\fs.realpath'
@ ./node_modules/fs.realpath/index.js 8:9-22
@ ./node_modules/glob/glob.js
@ ./node_modules/true-case-path/index.js
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/fs.realpath/old.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\fs.realpath'
@ ./node_modules/fs.realpath/old.js 24:9-22
@ ./node_modules/fs.realpath/index.js
@ ./node_modules/glob/glob.js
@ ./node_modules/true-case-path/index.js
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/glob/glob.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\glob'
@ ./node_modules/glob/glob.js 43:9-22
@ ./node_modules/true-case-path/index.js
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/glob/sync.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\glob'
@ ./node_modules/glob/sync.js 4:9-22
@ ./node_modules/glob/glob.js
@ ./node_modules/true-case-path/index.js
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/mkdirp/index.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\mkdirp'
@ ./node_modules/mkdirp/index.js 2:9-22
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/node-sass/lib/extensions.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\node-sass\lib'
@ ./node_modules/node-sass/lib/extensions.js 6:7-20
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
i 「wdm」: Failed to compile.`
我想我知道怎么回事了。我混淆了服务器端模块和客户端工作流:)是的。webpack有一个配置选项“target”(),可以在配置文件中使用。如果要绑定NodeJ,请设置“target:'node'”。对于客户端/浏览器,设置“目标:'web'”。要同时执行服务器/客户端操作,请参阅
`WARNING in ./node_modules/node-sass/lib/binding.js 19:9-37
Critical dependency: the request of a dependency is an expression
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/fs.realpath/index.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\fs.realpath'
@ ./node_modules/fs.realpath/index.js 8:9-22
@ ./node_modules/glob/glob.js
@ ./node_modules/true-case-path/index.js
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/fs.realpath/old.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\fs.realpath'
@ ./node_modules/fs.realpath/old.js 24:9-22
@ ./node_modules/fs.realpath/index.js
@ ./node_modules/glob/glob.js
@ ./node_modules/true-case-path/index.js
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/glob/glob.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\glob'
@ ./node_modules/glob/glob.js 43:9-22
@ ./node_modules/true-case-path/index.js
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/glob/sync.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\glob'
@ ./node_modules/glob/sync.js 4:9-22
@ ./node_modules/glob/glob.js
@ ./node_modules/true-case-path/index.js
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/mkdirp/index.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\mkdirp'
@ ./node_modules/mkdirp/index.js 2:9-22
@ ./node_modules/node-sass/lib/extensions.js
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
ERROR in ./node_modules/node-sass/lib/extensions.js
Module not found: Error: Can't resolve 'fs' in
'D:\dev\xyz.io.1\node_modules\node-sass\lib'
@ ./node_modules/node-sass/lib/extensions.js 6:7-20
@ ./node_modules/node-sass/lib/index.js
@ ./src/components/form/Form.js
@ ./src/components/app/App.js
@ ./src/index.js
i 「wdm」: Failed to compile.`