我希望每次从实际应用程序项目文件夹运行node index.js
时都运行../my_dir/my_script.js
。
换句话说,我需要my_script.js
在每个应用程序(A、B、C... N)中是通用的,并且在index.js
之前执行
结构形式:
+my_dir
-my_script.js
+appA
+node_modules
-package.json
-index.js
+appB
+node_modules
-package.json
-index.js
my_script.js
console.log('my_script.js from parent directory STARTED');
package.json(对于每个appA、appB......等类似)
{
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
//I HAVE TRIED
"start": "node ../my_dir/my_script.js",
"postinstall": "npm run-script ../my_dir/my_script.js",
"preinstall": "npm run --prefix ../my_dir/my_script.js",
}
}
index.js(对于每个appA、appB......等类似);
console.log('index.js STARTED');
如果我在appA node index.js
中尝试,我得到index.js STARTED
如果我在appA npm start
中尝试,我得到my_script.js from parent directory STARTED
预期:(执行两者):
my_script.js from parent directory STARTED
index.js STARTED
你知道怎么做吗
1条答案
按热度按时间guykilcj1#
我认为在使用命令行
node
命令时,不可能自动运行第二个脚本。或者将它们捆绑在package.json中
并执行了
您的
postinstall
和preinstall
不太正确,它们在执行npm install
时运行(您可以将post
和pre
关键字放在任何命令https://docs.npmjs.com/cli/v9/using-npm/scripts之前)所以你也可以
并执行了
再一次