我正在尝试将我的第一个模块发布到NPM,它使用EJS模板渲染Markdown,并使用另外两个npm模块marked和ejs,我已经在我的package.json文件中声明了这些依赖项。我有一个.gitignore文件,其中包含我的node_modules目录,还有一个空的.npmignore文件。
我已经成功地发布到了npm。
然而,当我尝试通过将其放入测试应用程序的package.json中并执行npm install -d来安装我的模块时,它会安装,但它不会安装其依赖项。如果我进入测试应用程序根目录下的node_modules目录,然后进入我的新发布的模块的安装目录,它没有安装任何依赖项,也没有自己的嵌套node_modules目录。
应该有一种方法可以使我的模块的依赖项正确安装。当我将express作为依赖项时,它会安装它自己的node_modules文件夹,并安装connect和其他模块,我想对两个其他npm模块执行相同的操作。
我知道如果它安装它的嵌套node_modules依赖项,它会起作用。当我这样做时,它起作用。
我已经成功地发布到了npm。
然而,当我尝试通过将其放入测试应用程序的package.json中并执行npm install -d来安装我的模块时,它会安装,但它不会安装其依赖项。如果我进入测试应用程序根目录下的node_modules目录,然后进入我的新发布的模块的安装目录,它没有安装任何依赖项,也没有自己的嵌套node_modules目录。
应该有一种方法可以使我的模块的依赖项正确安装。当我将express作为依赖项时,它会安装它自己的node_modules文件夹,并安装connect和其他模块,我想对两个其他npm模块执行相同的操作。
我知道如果它安装它的嵌套node_modules依赖项,它会起作用。当我这样做时,它起作用。
$ npm install -d
$ cd node_modules/my_module
$ npm install -d
$ cd ../..
$ node app
编辑: 这是我的模块的GitHub存储库链接,这是package.json。
编辑: 注意,只有当我在我的测试应用程序中已安装了marked和ejs依赖项时,才会发生这种情况。然后,当我安装我的模块时,它没有在自己的node_modules
目录中安装marked和ejs。但是,如果我从测试应用程序中删除所有模块并仅安装我的模块,则会安装它们。是否有任何方法可以使其无论先前是否安装了我的依赖项都能正常工作。
package.json
的内容吗? - Alberto Zaccagni