maa*_*nus 5 npm post-install reactjs
npm install whatever删除node_modules/-文件夹的原因不同:我以为它可以运行preinstall但没有postinstall,我错了。
我没有运行这两个脚本。
原因似乎是npm install whatever它还删除了我的package.json. 有趣的是,它没有安装在 my 中提到package.json但在node_modules. 这与迈克尔·瓦德尔在评论中所写的完全一样。这对我来说毫无意义,但是......
在此评论之后,我切换到绝对导入并依靠 postinstall(在我自己的 package.json 中)来创建链接
{
"scripts": {
"preinstall": "rm node_modules/-",
"postinstall": "ln -s `pwd`/src node_modules/-",
...
},
}
Run Code Online (Sandbox Code Playgroud)
它运行良好,除非我真的安装了一些东西。和
npm install
Run Code Online (Sandbox Code Playgroud)
链接被删除,然后重新创建。然而,随着
npm install whatever
Run Code Online (Sandbox Code Playgroud)
链接被删除,但不会重新创建。这是一个错误还是故意的,我应该使用其他一些“安装后”吗?
请注意,我并不担心丢失我的src目录。那是一个不同的问题。我的问题是“安装后”仅有时运行。
人们评论说,钩子只有在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
Run Code Online (Sandbox Code Playgroud)
这意味着preinstall运行,但postinstall没有。这听起来像一个错误......
> node -v
v12.16.3
> npm -v
6.13.4
Run Code Online (Sandbox Code Playgroud)
安装前和安装后脚本是我自己的package.json(可以从上下文中理解,但我应该说清楚)。
Muh*_*man -1
有时节点由于某种原因而崩溃,因此删除node_module文件夹。你可以通过yarn安装任何东西
yarn add whatever
Run Code Online (Sandbox Code Playgroud)
preinstall:在安装软件包之前运行 install
postinstall:安装软件包后运行。
绝对路径:
安装babel-plugin-module-resolver通过
yarn add -D babel-plugin-module-resolver
yarn add -D customize-cra
Run Code Online (Sandbox Code Playgroud)
babel.config.js然后像这样在文件中添加相对路径
const { override, addBabelPlugins } = require('customize-cra');
module.exports = override(
...addBabelPlugins([
'module-resolver',
{
alias : {
'@components' : './src/components',
}
}
])
);
Run Code Online (Sandbox Code Playgroud)
那么你可以使用像这样的绝对路径
import TextLabel from '@components/textLabel/index.js'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
514 次 |
| 最近记录: |