我想发布一个NPM包,其中包含我的源代码以及分发文件。我的GitHub存储库包含src
文件夹,其中包含JavaScript源文件。构建过程生成包含分发文件的dist
文件夹。当然,dist
文件夹不会签入到GitHub存储库中。
我如何发布NPM包,使他们在执行npm install
时,获得src
和dist
文件夹?目前,当我从Git存储库中运行npm publish
时,结果只发布了src
文件夹。
我的Package.json文件如下所示:
{
"name": "join-js",
"version": "0.0.1",
"homepage": "https://github.com/archfirst/joinjs",
"repository": {
"type": "git",
"url": "https://github.com/archfirst/joinjs.git"
},
"main": "dist/index.js",
"scripts": {
"test": "gulp",
"build": "gulp build",
"prepublish": "npm run build"
},
"dependencies": {
...
},
"devDependencies": {
...
}
}
4条答案
按热度按时间ds97pgxw1#
当您
npm publish
时,如果您没有.npmignore
文件,NPM将使用您的.gitignore
文件(在您的情况下,您排除了dist
文件夹)。要解决您的问题,请基于
.gitignore
文件创建一个.npmignore
文件,而不忽略dist文件夹。来源:将文件放在您的包之外
wnavrhmk2#
查看Package.json文件的“Files”字段:Package.json,Files
从文档中:
“Files”字段是要包括在项目中的文件数组。如果命名数组中的文件夹,则它还将包括该文件夹中的文件。(除非它们会被另一条规则忽略。)
ddhy6vgd3#
如何使用脚本中的数据文件的最小示例
另一个常见用例是拥有脚本需要使用的数据文件。
这可以通过使用在*How can I get the path of a module I have loaded via require that is not mine (i.e. in some node_module)*中提到的技术轻松完成。
完整的示例可在以下位置找到:
使用此设置,文件
mydata.txt
在安装后被放入node_modules/cirosantilli-data-files/mydata.txt
,因为我们将其添加到package.json
的files:
条目中。然后,我们的函数
myfunc
可以通过使用require.resolve
找到该文件并使用其内容。当然,它也只适用于可执行文件./cirosantilli-data-files
。Package.json
Mydata.txt
Index.js
密码-数据-文件
如果您希望生成分发文件的相对路径,则
is-installed-globally
包将非常有用,具体取决于这些文件是本地安装还是全局安装:如何判断NPM包是全局安装的还是本地安装的kqlmhetl4#
只要不在.npmIgnore文件中提到src和dist,就可以在node_模块中获取scr和dist……就这样
另一点是,如果存在.gitignore文件,并且缺少.npmIgnore,则将使用.gitignore的内容。