我目前正在编写节点CLI工具,并使用webpack捆绑我的所有资产。该应用程序的入口点是js文件,我实际上在其中解析process.argv
并运行命令(供参考,我使用的是tj / commander)。这样,一旦捆绑完成,我就可以输入./
,它将运行我的应用程序。入口文件如下所示:
import cli from './cli'; cli.parse(process.argv); // If nothing was supplied if (!process.argv.slice(2).length) { cli.outputHelp(); }
捆绑工作正常,但我无法通过webpack将文件输出为可执行文件。一旦我跑步chmod +x
,一切都会正常进行。有没有一种方法可以告诉webpack授予输出文件什么权限?
一种简单的方法是使用npm。你有一个package.json
在你的项目?添加"build": "webpack && chmod +x outputFile"
到scripts
您的部分,package.json
然后通过运行构建项目npm run build
。
另一种方法是将以下解决方案之一添加到您的webpack.config.js
:
这个答案的简单插件,具有pre
和post
构建处理程序
使用on-build-webpack插件,该插件在webpack构建过程结束时执行js代码
无论选择什么,都需要添加以下代码:
var chmod = require('chmod'); chmod("outputFile", 500);