私はバンドルを作成するためにnode.jsとwebpackを使用しています。私が読んだことから、node.jsにはファイルを管理するためのモジュールfs
が含まれているはずです。しかし、私がrequire("fs")
と呼ぶとCannot find module "fs"
というエラーが出ます。私は何をすべきか?webpackを使用している場合、ノードは「fs」モジュールを見つけることができません
答えて
webpackとバンドルしたときにこの問題が発生しました。答えはthis threadです。あなたのノード・アプリケーション
編集をバンドルする必要な変更を行いますノードのWebPACKにターゲットを設定することで
module.exports = {
entry: "./app",
output: {
path: __dirname,
filename: "bundle.js"
},
module: {
loaders: [
{
test: /\.js$/,
exclude: 'node_modules',
loader: 'babel',
query: {presets: ['es2015']},
}
]
},
target: 'node'
};
:
私のためにそれを解決する方法は、次の設定を使用していたこの答えは、対象現在置き換えられているwebpack 1.x。
それは修正しましたが、エラーを見つけることができませんでした。コンソールのロギングは私に期待される出力を与えません。私はfsの関数を使うことはできません。 – user3799968
ごめんなさい申し訳ありません私は私の前でコードを使用していませんでした。私は答えを更新し、それが正常に動作するテストしました。 'target: 'node'を追加すると、Webpackはfsモジュールをバンドルしなくなり、通常の使用が可能になります。 –
私はその後、必要と定義されていません – user3799968
ウェブワーカー(ノードが有効になっていた)を使用してNWjsアプリケーションをNWjsアプリケーションにバンドルすると、同じ問題が発生しました。
私が見つけた解決策は、私がexternals
で使用した各ネイティブモジュールを、接頭辞commonjs
をモジュールの名前に含めることでした。たとえば:
...
target: "webworker", // or 'node' or 'node-webkit'
externals:{
fs: "commonjs fs",
path: "commonjs path"
}
...
私は同じ問題を解決するために、さまざまなプロジェクトにターゲットを「webworker」と「ノードのWebKit」のために同じことをやりました。
クイック解説@PDG、これはwebpack 3のためだけですか?あなたの答えは私のNW.jsアプリの問題を克服するのに役立ちました。ありがとうございました!私は利用可能なfsが必要なので、私はwebpackの設定で 'node-webkit'をターゲットとして使用しなければなりませんでした。私は[email protected]をインストールした後でしか動作しないと思います。これが事実であることを確認できますか? – ackzell
それがあなたを助けてくれてうれしいです。私はwebpack 2+でも動作することを確認することができます。私は今この方法でプロジェクトで使用しています。 – PDG
あなたが使用しているのNode.jsのバージョンは何?この質問にいくつかのソースコードを追加できましたか? – qzb
バージョン6.5 ehm .. var fs = require( "fs"); これだけでエラーが発生します – user3799968
万が一、ウェブパックを使用していますか? –