npm - 使用 npm 包

标签 npm workflow gulp

我想知道你如何使用 npm 作为项目中的包管理器?

我的项目使用以下文件结构:

.
|_ site/
|  |_ bower_components/
|  |_ index.html
|  |_ assets/
|     |_ js/
|        |_ scripts.js
|
|_ dist/
|_ node_modules/
|  |_ underscore
|     |_ underscore-min.js
|
|_ gulpfile.js
|_ package.json
|_ ...

我使用这个 gulp 任务来提供服务/浏览器刷新:

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 文件在 underscore-min.js 文件中找不到,但路径是正确的?在“gulp服务任务”中,基本目录设置为“site”,所以我想我不能用“../”向上一个文件夹?

我无法告诉 npm 将其模块保存在不同的文件夹中。另外,项目结构在我看来很常见,所以我想知道如何设置一个项目来使用这些包。

使用 npm install somePackage 时的工作流程会是什么样子?您是否将其从node_modules中复制到您的项目文件夹中(例如assets/js/..)。

最佳答案

使用 browsersync,您可以传递“路由”选项:

// Since version 1.2.1
server: {
    baseDir: "app",
    routes: {
        "/node_modules": "../node_modules"
    }
}

然后就这样做

<script src="node_modules/underscore/underscore-min.js"></script>

就我的建议而言:只需使用 browserify并让 browsersync 服务于 dist 文件夹。您应该运行将要投入生产的代码,而不是上传 dist 文件夹并希望它能正常工作。

关于npm - 使用 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28142048/

相关文章:

css - 如何在 .Net Framework WebAPI 元素中使用 npm/yarn 安装?

javascript - 更新 CRM 2011 中的记录时触发的工作流程/流程

twitter-bootstrap - 我的 Gulp 内联源映射文件大小应该和它一样大吗?

node.js - gulp 命令给出模块错误找不到

javascript - 新 Node Tools Express App 项目中的 Intellisense 错误

css - 如何使用 npm 在 Laravel 5.6 中添加 css 文件

ruby-on-rails - Ruby on Rails 开发流程/顺序

android - Android 项目的 Jira 工作流程

angularjs - Visual Studio Code 提示 *.d.ts 文件中定义的类型为 "Cannot find namespace"

node.js - 将 npm script 命令行参数传递给其中的特定脚本