npm postinstall仅在不安装任何东西时运行

问题描述 投票:2回答:1

我错了

npm install whatever删除node_modules/-文件夹的原因是不同的:我以为它运行preinstall,但没有postinstall,我错了。

我不运行两个脚本。

原因似乎是npm install whatever删除我的package.json中未提及的所有软件包。 Funnilly,它没有install我的package.json中提到的软件包,但没有在node_modules中丢失。就像迈克尔·瓦德尔(Michael Waddell)在评论中写道。这对我来说毫无意义,但是....


跟随this comment,我切换到绝对导入,并依靠后安装(在我自己的package.json中)创建链接

{
  "scripts": {
    "preinstall": "rm node_modules/-",
    "postinstall": "ln -s `pwd`/src node_modules/-",
    ...
  },
}

除非我确实安装了某些东西,否则它会很好地工作。带有

npm install

该链接将被删除,然后重新创建。但是,用

npm install whatever

链接被删除,但未重新创建。这是错误还是故意的,我应该使用其他“后安装”吗?

请注意,我不担心丢失我的src目录。那是另一个问题。我的问题是“ postinstall”有时仅运行。

更新

人们评论说,只有在运行npm install时不带任何参数的钩子才会运行。我可以忍受,但这不是真的:

> ls -l node_modules/-
lrwxrwxrwx 1 maaartinus maaartinus 40 May 29 11:53 node_modules/- -> /home/maaartinus/work/octopus/reocto/src

> npm i whatever
foo bar baz blah

> ls -l node_modules/-
ls: cannot access 'node_modules/-': No such file or directory

这意味着preinstall运行,但是postinstall没有运行。这听起来像个错误...

> node -v
v12.16.3
> npm -v
6.13.4

更新2

安装前和安装后脚本在我自己的package.json中(可以从上下文中理解,但是我应该清楚地说明)。

reactjs npm post-install
1个回答
0
投票

有时由于某种原因使节点弯曲,因此删除其node_module文件夹。您可以通过纱线安装任何东西

yarn add whatever

preinstall & postinstall

预安装:在安装软件包之前先运行安装

安装后:安装软件包后运行。

绝对路径:

通过]安装[C0

babel-plugin-module-resolver

然后像这样在yarn add -D babel-plugin-module-resolver yarn add -D customize-cra 文件中添加相对路径

babel.config.js

然后您可以使用这样的绝对路径

const { override, addBabelPlugins } = require('customize-cra');
module.exports = override(

    ...addBabelPlugins([
        'module-resolver',
        {
            alias : {
                '@components'     : './src/components',
            }
        }
    ])
);

© www.soinside.com 2019 - 2024. All rights reserved.