我有一个私有(private)库,打算在两个代码库之间共享。
它的结构如下:
package.json
src/
|_stores/
|_user.js
|_actions/
|_user.js
该项目称为“foo”,我想做如下导入:
require('foo/stores/user');
// OR
import User from 'foo/stores/user';
做这个的最好方式是什么?
我已阅读 this OP这表明我可以将 package.json 复制到
lib
文件夹,但它缺乏更多的细节?我尝试过的事情:
由于代码是 ES2015/React/Flux 我正在使用
babel
和 gulp
与 prepublish script建立一个lib
npm install
上的目录看起来像这样:package.json
src/
|_stores/
|_user.js
|_actions/
|_user.js
lib/
|_stores/
|_user.js
|_actions/
|_user.js
但是,这只能通过以下方式获得:
require('foo/lib/stores/user')
因此,我将预发布脚本更改为构建到父目录,从而导致:package.json
stores/
|_user.js
actions/
|_user.js
src/
|_stores/
|_user.js
|_actions/
|_user.js
但是,在本地开发期间(使用 npm 链接/文件依赖项),这会变得有点困惑。
我还尝试将 package.json 符号链接(symbolic link)到
lib
和设置main
指向lib
但这似乎没有做任何事情。
最佳答案
事实证明,我试图做的事情违背了惯例。自从写了这个问题以来,我注意到大多数库通过 package/lib/dep
引用它们的依赖项。 .所以简而言之,我做了以下问题中提到的:
使用带有 prepublish 的 webpack(或 babel 和 gulp)在 npm install 上构建 lib 目录的脚本,如下所示:
package.json
src/
|_stores/
|_user.js
|_actions/
|_user.js
lib/
|_stores/
|_user.js
|_actions/
|_user.js
这将允许您执行以下操作:
require('foo/lib/stores/user')
关于node.js - 使 npm 包子模块可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38191329/