A项目文件依赖B项目文件 怎么让A不需要每次都重新安装B?

B项目作为一个公共库,有时候需要一边修改一边在A项目中查看效果。
但是A对B的引用是安装了B项目publish出去的npm package,有没有什么办法能让A项目实时引用到B项目的代码变化?

阅读 4.3k
5 个回答

是把package.json依赖的文件放到本地?
像这样
clipboard.png

可以试下npm link

在B项目执行 npm link, 然后再A里执行 npm link [B的发布包名称] ,这样B里的改动在A的node_modules会实时更新,你可以认为共享的是一份代码

B项目是发布到类似npm这种仓库吗?我以前测试自己的webpack插件是安装在A项目后在A项目里改,然后再发布。也许可以在每次运行的脚本前加一句npm update?

你可以研究一下使用webpack-dev-server,一般牵涉到实时更新,你就要用到服务器层来过渡,vue-cli就是这样子实现的,你可以看一看源码。

区分开发环境和生产环境
也就是说开发环境用本地同步开发的B1, 生产环境用发布的npm包 B2。

实现方式通过DefinePlugin:

new webpack.DefinePlugin({
            "BName": `"${process.env.NODE_ENV === 'development' ? '/path/to/B1' : 'B2'}"`
        }),

业务代码就是

B = require(Bname)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题