npm为自定义模块安装"没有这样的文件或目录'.../package.json'"

art*_*pro 5 node.js npm

我有一些符号链接的文件夹node_modules,以便能够将import它们作为模块.例如,我有src/client/apps/admin符号链接到的目录node_modules/@admin.但是当我尝试安装或删除任何模块时,npm给了我这些警告

$ npm i -S connect-roles
...

npm WARN ENOENT ENOENT: no such file or directory, open '/Users/Admin/Code/www/learn/src/client/apps/admin/assets/package.json'
npm WARN ENOENT ENOENT: no such file or directory, open '/Users/Admin/Code/www/learn/src/client/apps/admin/components/package.json'
npm WARN ENOENT ENOENT: no such file or directory, open '/Users/Admin/Code/www/learn/src/client/apps/admin/reducers/package.json'
npm WARN ENOENT ENOENT: no such file or directory, open '/Users/Admin/Code/www/learn/src/client/apps/admin/package.json'
Run Code Online (Sandbox Code Playgroud)

当然,我可以添加package.json到每个这样的文件夹,但我不想.必须有另一种更好的方法来做到这一点.在那儿?

PS:npm v3.5.3

art*_*pro -1

所有答案都没有帮助我解决问题,因此我创建了自己的包 module-alias,它受到app-module-path. 该包允许注册目录别名以供进一步使用require/ import。

例子:

const moduleAlias = require('module-alias')

moduleAlias.addAliases({
  '@root'  : __dirname,
  '@server': __dirname + '/src/server'
})

const someModule = require('@server/some-module')
Run Code Online (Sandbox Code Playgroud)

阅读自述文件以获取更多示例