ノードモジュールを作成したため、正しく使用できないようです。モジュールを言った。ここは私のindex.jsです:自分自身のノードモジュールの使用方法
const thing = require('./thing.js');
exports.thing = thing;
はここthing.jsです:
module.exports = 'foobar';
はここでpackage.jsonです:
{
"name": "thing-both",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
ここでpackage.jsonは私の他のモジュールにあります私はそれを使用したい:
{
"name": "another-thing",
"description": "",
"dependencies": {
"thing-both": "file:../both"
},
"private": true
}
私はnpm installを実行し、モジュールがインストールされます。 anotherThing
モジュールで作成したモジュールを要求しようとすると、「モジュールが見つかりません」というエラーが表示されます。これは私の文必要がある:私は気づい
const thing = require('thing-both');
ことの一つは、インストールモジュールのファイルがありませんということで、フォルダが私のディレクトリのサイドバーにアイコンが表示されている(崇高3使用して、アイコンがシンボリックリンクのアイコンのように見える):
ここでは、私が働いているプロジェクトのディレクトリです:私はここで間違って
both
thing.js
index.js
package.json
other
// stuff
は何をしているのかもしれませんか?
これは試しましたが、以前と同じエラーが発生しました。モジュールディレクトリ 'both'に' npm link'を実行し、モジュールディレクトリ 'other'に' npm link thing-both'を実行しました。私の端末がそうであると言っているので、リンクが正しくセットアップされたように見えます。おそらく、実際にノードモジュールを正しく作成していないのでしょうか? – skwny
@skwnyコンシューマモジュールの 'node_modules'フォルダを見てください(私はそれが別のものだと思います)。ライブラリモジュールへのディレクトリ(またはシンボリックリンク)がありますか(私はあなたがそれを両方とも呼びます)?もし存在すれば、あなたは 'var thingBoth = require(" thing-both ");'でJS内のライブラリを要求する必要があります。 – zero298
はい、そうです。私は 'const thingBoth = require( 'thing-both')'を経由していますが、呼び出しモジュールのnode_modulesフォルダ(アイコンとしてシンボリックリンクを持っているようです)にディレクトリを持っています。しかし、私がディレクトリ 'thing-both'を呼び出しモジュールのnode_modulesフォルダに展開すると、元の質問に示されているように何も表示されないことに注意してください。 – skwny