【问题标题】:NPM package.json base / root property?NPM package.json 基础/根属性?
【发布时间】:2018-07-12 20:14:15
【问题描述】:

是否有package.json 属性可用于指定模块解析应开始的根文件夹?

例如,假设我们在node_modules/mypackage/src/file1 中进行了安装。我们要导入的所有文件都在src 目录下开始。我们可以指定如下内容:

 { 
    root: ./src/
 }

然后require('mypackage/file1');

想法?

【问题讨论】:

  • 不...但您可以创建自己的函数来做到这一点。
  • 不,没有可以指定的属性。你为什么不把exports.foo = require('./src/file1') 加入mypackage/index.js 呢?和require('mypackage').foo?
  • 我能做到。我正在考虑创建一个 index.ts 并将其编译到目标中。我有很多文件:github.com/fireflysemantics/validator ... 另一种选择是将所有内容编译到目标并将 package.json 也复制到目标,然后发布...不过感谢您的提醒。
  • 创建了一个功能请求。如果您喜欢这个想法,请投票/竖起大拇指:github.com/nodejs/node/issues/21787
  • @Ole 我认为 node 甚至不会处理这样的请求,很确定这将属于 npm 和其他包管理器的责任......

标签: javascript node.js npm npm-install


【解决方案1】:

ECMAScript 模块支持 package.json 中的实验性 exports 属性。您可以尝试以下方法:

{
  "exports": {
    "./": "./src/"
  }
}

然后像这样导入:

import file1Module from 'mypackage/file1'

应该从./node_modules/mypackage/src/file1.js 加载。如果无法为根目录设置别名,您将不得不这样做:

{
  "exports": {
    "./file1": "./src/file1.js"
  }
}

对于您想要别名的每个模块或目录。

如您的GitHub issue 所述。

【讨论】:

    猜你喜欢
    • 2019-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    相关资源
    最近更新 更多