给出以下利用local paths的文件夹结构:
dist
components
Button.js
index.js
src
components
Button.js
index.js
website
pages
components
button.js
package.json
...
package.json
src / components / Button.js
export const VARIANTS = ["primary", "secondary"];
function Button({ variant = "primary"}) {
...
}
Button.propTypes = {
variant: PropTypes.oneOf(VARIANTS),
};
export default Button;
src / index.js
export { default as Button } from "./components/Button";
website / package.json
{
"dependencies": {
"design-system": "file:..",
...
}
...
}
package.json
{
"name": "design-system",
"main": "dist/index.js",
"scripts": {
"transpile": "rimraf dist && babel src -d dist",
...
},
...
}
导入Button
可以正常工作:
网站/页面/组件/button.js
import { Button } from "design-system";
但是,直接从子文件夹导入不起作用:
网站/页面/组件/button.js
import { VARIANTS } from "design-system/components/Button";
未找到此依赖项:design-system / components / Button
我在这里想念什么?
答案 0 :(得分:3)
当您从design-system
导入时,如下所示:
import { Button } from "design-system";
因为您的"main": "dist/index.js"
中有一个package.json
字段。与
import { Button } from "design-system/dist/index.js";
因为文件存在而起作用。
要从dist
文件夹导入任何其他模块,您必须明确并以design-system/dist
开头:
import { VARIANTS } from "design-system/dist/components/Button";
答案 1 :(得分:1)
它应该可以按预期正常工作-我的猜测是,更新代码后您可能没有重新安装模块吗?
由于本地模块已复制到node_module
文件夹中,因此每次修改模块代码时都需要更新node_modules
副本。在您的项目根目录中尝试以下操作:
rm -rf node_modules/design-system && npm install
,然后检查其是否正常工作。