package.json 中的相对路径?

Gil*_*ili 5 json npm browserify gulp

我有一个项目src/main/webapp/com/mycompany/frontend/page/index.js依赖于target/webjars/log4javascript/1.4.10/log4javascript.js.

我添加了package.json以下index.js内容:

{
    "browser":
        {
            "log4javascript": "../../../../../../../target/webjars/log4javascript/1.4.10/log4javascript.js"
        }
}
Run Code Online (Sandbox Code Playgroud)

我的目录中有许多其他依赖项target。有没有办法让我避免重复../../../../../../../target/每个依赖项?

Sam*_*Fen 1

查看本文中的使用非相对路径部分。

您可以使用 grunt-browserify 的 aliasMapping 选项来指定应用程序的根目录:

aliasMappings: [{
  cwd: 'src',
  dest: 'myApp',
  src: ['**/*.js']
}]
Run Code Online (Sandbox Code Playgroud)

然后你可以直接引用根路径中的所有内容,而不必使用任何可怕的../

require("myApp/target/webjars/log4javascript/1.4.10/log4javascript.js")
Run Code Online (Sandbox Code Playgroud)

当然,这并不能解决问题,路还很长。

本文的下一段提出了一个非常好的观点:如果您像这样在应用程序的另一端调用事物,那么这是一个好兆头,表明事物的架构可能不正确。

您能否将功能拆分为更小的模块?也许让 log4javascript 成为它自己的模块?


根据下面的讨论添加到我的答案中:

如果 log4javascript 在您的 package.json 文件中作为浏览器(非 NPM)模块,您应该能够使用require('log4javascript')