我尝试将Node应用程序部署到Heroku,但是在部署应用程序时我遇到了成功运行browserify的问题。
当我在本地运行时,我会使用npm run bundle
浏览我的脚本(来自package.json
):
"bundle": "./node_modules/browserify/bin/cmd.js build/main.js -o public/scripts/bundle.js
浏览build/main.js
中的脚本并将其放入public/scripts/bundle.js
。
为了部署到Heroku,我添加了
"postinstall": "npm run bundle"
然而,当我部署时,我收到以下错误:
Error: ENOENT: no such file or directory, open 'public/scripts/bundle.js.tmp-browserify-59309133185877094263'
嗯,这是正确的,那个文件不应该存在......当我在本地运行npm run bundle
时,我确实看到该文件暂时存在,但随后会立即将其删除,我留下了更新的bundle.js
。
我通过Heroku的文档阅读了这篇文章,但我感到很生气......任何人都可以澄清如何解决这个问题吗?
供参考,以下是我package.json
的相关部分:
"scripts": {
"bundle": "./node_modules/browserify/bin/cmd.js build/main.js -o public/scripts/bundle.js",
"postinstall": "npm run bundle"
},
"dependencies": {
"body-parser": "^1.17.1",
"browserify": "^14.1.0",
"ejs": "^2.5.6",
"express": "^4.15.2",
"jquery": "^3.2.1",
"path": "^0.12.7",
"superagent": "^3.5.2"
},
"devDependencies": {},
"engines": {
"node": "6.8.1",
"npm": "4.0.5"
}
答案 0 :(得分:0)
解决!我的全局gitinore配置中包含<form action="" method="post" name="f">
<TABLE id="dataTable" border="1">
<thead>
<tr>
<td></td>
<td>Product Name</td>
<td>Model</td>
<td>Description</td>
</tr>
</thead>
<tbody>
</tbody>
</TABLE>
<br>
<input type="text" name="ProductNme" id="item" >
<input type="text" name="ProductNme" id="price" >
<input type="text" name="ProductNme" id="qty" >
<input type="submit" name="submit" value="Submit">
<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />
。只是不得不把它拿出来,好好去!