使用npm包
我想知道作为项目中的包经理,您是如何与npm合作的 我的项目使用以下文件结构:使用npm包,npm,workflow,gulp,Npm,Workflow,Gulp,我想知道作为项目中的包经理,您是如何与npm合作的 我的项目使用以下文件结构: . |_ site/ | |_ bower_components/ | |_ index.html | |_ assets/ | |_ js/ | |_ scripts.js | |_ dist/ |_ node_modules/ | |_ underscore | |_ underscore-min.js | |_ gulpfile.js |_ package.json |_
.
|_ site/
| |_ bower_components/
| |_ index.html
| |_ assets/
| |_ js/
| |_ scripts.js
|
|_ dist/
|_ node_modules/
| |_ underscore
| |_ underscore-min.js
|
|_ gulpfile.js
|_ package.json
|_ ...
我将此吞咽任务用于服务/浏览器刷新:
gulp.task('serve', function () {
browserSync.init({
server: {
baseDir: ['site']
},
notify: false
});
gulp.watch(['site/**/*.html'], reload);
gulp.watch(['site/assets/css/**/*.css'], ['styles', reload]);
gulp.watch(['site/assets/images/**/*'], ['images']);
});
现在,当我想从我的node_modules文件夹(例如下划线)中包含脚本时,我会这样做:
<script src="../node_modules/underscore/underscore-min.js"></script>
然而,这将给我一个404文件,在下划线-min.js文件中找不到,但路径正确吗?在“gulp serve task”中,基本目录设置为“site”,因此我想我不能将一个文件夹与“./”一起放上去
我无法告诉npm将其模块保存在其他文件夹中。此外,项目结构在我看来非常常见,所以我想知道如何设置一个项目来处理这些包
使用npm安装somePackage时工作流会是什么样子?您是否将其从内部的节点模块复制到您的项目文件夹(例如assets/js/)。我也有同样的问题。解决方案是使用另一种方法来定义相对路径。 我相信你在问题中提出的问题在下面关于Stackoverflow的文章中得到了解决: 问候,,
Kees使用browsersync,您可以传递“路由”选项: 那就做吧
<script src="node_modules/underscore/underscore-min.js"></script>
根据我的建议:只需使用并让browsersync为
dist
文件夹提供服务。您应该运行将用于生产的代码,而不是上载dist文件夹并希望它工作。当您运行服务器时,客户端永远不能引用根路径之上的任何路径。作为一种解决方案,您可以将依赖项文件放在站点根文件夹的某个位置,比如scripts
文件夹中。我写了一封信来做这件事
它的工作原理如下:
var-DepLinker=require('dep-linker');
deLinker.copyDependenciesTo(“./site/scripts”)
//完成
这不起作用,我的下划线仍然是404。可能是因为“如果文件位于baseDir位置,路由功能将不会重新写入请求”?请看:我使用的是一个修改版的yeoman“generator gulp webapp”,文件从应用程序文件夹中获得。当脚本文件被删除时,您将如何提供“dist”文件夹中的文件。在你使用“吞咽构建”后,就可以复制到那里。对我来说,总是编译文件并将其复制到“dist”似乎相当慢。请检查:Browserify+Watchify进行增量构建,因此它只重新编译已更改的javascript。
<script src="node_modules/underscore/underscore-min.js"></script>