我可以从node_modules修改软件包吗?

时间:2018-08-24 09:25:19

标签: javascript node.js reactjs node-modules

我使用react-redux-snackbar来改进此程序包的样式,我从node_modules修改了程序包,但没有任何反应。

在将node_modules修改到此插件的文件夹中时,我想对样式表进行修改,但是什么也没有发生。

您有什么建议,例如分叉项目并创建自己的插件?

6 个答案:

答案 0 :(得分:0)

要更新软件包,您需要运行类似npm install react-redux-snackbar @ latest

答案 1 :(得分:0)

如果您希望某些依赖项有所改善。现在是您可以向该存储库发出拉取请求的合适时机。因此,使用同一软件包的每个人都可以使用。最重要的是,如果您在团队中工作。我们不会在回购中推送node_modules。其他成员将远程下载软件包,因此您的更改不会在此处反映出来。 希望你明白我的意思。

答案 2 :(得分:0)

如果要更新node_modules中的软件包,则必须在项目中进行更改,然后在node_modules中重建项目。重建步骤可能在Readme.md中。但是,如果您通过npm install或其他方式更新项目,则您的项目可能会崩溃。

答案 3 :(得分:0)

是的,可以。几种选择:

  • 在项目上提交拉取请求,然后等待作者提交 释放它。
  • 您可以将项目自己存储在github上并发布。
  • 使用符号链接,方法是转到源文件夹并使用npm link,然后在项目中引用它。 Instructions

答案 4 :(得分:0)

重要的事情是,每当在node_modules文件夹中进行更改时,都需要重新构建项目以查看其效果,

现在,如果您已修改node_modules并重新启动服务器,则会看到更改

真正的问题会在以后您尝试执行npm i时发生,它将自动覆盖您的更改,

解决方案,

  1. 在GitHub上的叉子项目
  2. 在您的系统上克隆项目
  3. 创建两个分支stable-verisonmodified-version
  4. modified-version分支中进行所需的更改

您将使用stable-verison分支来同步原始存储库中的最新更改

您将如何使用此modified-verion分支 有两种方法,

  1. 将分支作为新程序包发布到npm
  2. 使用SHA提交哈希直接在package.json中使用

这是第二个选项的示例 打开您的package.json文件,并用GitHub存储库中的信息替换MODULE,USER,REPO和SHA。

"MODULE": "https://github.com/USER/REPO/commit/SHA",

在您的情况下:

"react-redux-snackbar": "https://github.com/yourUser/react-redux-snackbar/commit/Your-Modified-Commit-SHA"

我希望这对您有用

答案 5 :(得分:0)

我为此使用的方法是在我的源代码树中保留一个预先构建的自定义副本,然后用它破坏模块版本:

  "scripts": {
    "postinstall": "cp -r ./src/mycom/lib/tinymce/* ./node_modules/tinymce/",

这在 npm -i 之后有效,例如CI 设置。我为遇到问题的库 (tinymce) 分叉了 repo,编辑了它的源代码,然后构建了它。

我根本不知道 npm lib 文件/文件夹结构,但我将 ./js 文件夹内容复制到我的 lib 文件夹中,然后在安装时从那里复制到 node_modules 中,它似乎可以工作。

不要忘记告诉你的 linter 也忽略你的 lib 文件夹,例如

"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}' --ignore-pattern 'src/mycom/lib' --quiet",
"lint:fix": "eslint 'src/**/*.{js,jsx,ts,tsx}' --ignore-pattern 'src/mycom/lib' --fix --quiet",