【问题标题】:How can I let Ionic know about the change of the project structure?如何让 Ionic 知道项目结构的变化?
【发布时间】:2015-05-17 17:01:33
【问题描述】:

我已更改内部“www”文件夹结构,即将“scss”文件夹移动到“assets”文件夹,创建“app”文件夹等。现在,当我尝试运行时:

ionic setup sass(http://ionicframework.com/docs/cli/sass.html),

它在“www”而不是“www/assets”中创建一个“css”文件夹。

如何更新 Ionic 的结构变化?我设法更新了“.bowerrc”,因此它知道将包放在哪里,但只有 Bower 知道新的项目结构。

【问题讨论】:

  • 如果您认为它解决了您的问题,请随时接受答案:-)

标签: cordova mobile ionic-framework project-structure directory-structure


【解决方案1】:

您可以为您的 css 文件使用任何您想要的文件夹。
您必须更改的一件事是 gulpfile.js 中的 gulp 任务:

gulp.task('sass', function(done) {
  gulp.src('./scss/ionic.app.scss')
    .pipe(sass({
      errLogToConsole: true
    }))
    .pipe(gulp.dest('./www/css/'))
    .pipe(minifyCss({
      keepSpecialComments: 0
    }))
    .pipe(rename({ extname: '.min.css' }))
    .pipe(gulp.dest('./www/css/'))
    .on('end', done);
});

如您所见,它会转换目标文件夹 ./www/css/ 中的 scss 文件 ionic.app.scss

.pipe(gulp.dest('./www/css/'))

这是您必须使用新路径更改的代码。

不要忘记用新路径更改您的 index.html

您不必更改 ionic.project 文件,因为它已经包含 www 文件夹(和子文件夹)中的所有文件,不包括 www/lib(和子文件夹);见ref:

实时重载

默认情况下,LiveReload 将监视您的 www/ 目录中的更改, 不包括 www/lib/。

更新:

也许有人有兴趣更改根文件夹www。我们可以这样做,但我们必须指示 ionic 使用不同的名称。

ionic.project 有一个附加属性:documentRoot:

{
  "name": "myApp",
  "app_id": "",
  "documentRoot": "app",
  "gulpStartupTasks": [
    "sass",
    "watch"
  ],
  "watchPatterns": [
    "app/**/*",
    "!app/lib/**/*"
  ]
}

Serving an alternate document root 提供有关该主题的更多信息。

【讨论】:

  • 感谢您的回答。我想我还必须修改“ionic.project”文件?收件人:"watchPatterns": [ "www/assets/**/*", "!www/assets/lib/**/*"].
  • 是的,如果您希望 ionic serve 任务正确使用项目中的 sass 文件的实时重新加载。它会监视此模式数组中的文件以进行更改并自动触发 sass 重建。
  • @Arthur:实际上,不,因为它已经包含 www 中除 www/lib 之外的所有内容
  • @JeremyWilken:你是对的。忘了提那个。谢谢。
  • 对于其他人,请记住,运行ionic update 仍会将离子资源安装在 www/lib 目录中。因此,您必须在更新后移动它们。
猜你喜欢
  • 2020-08-14
  • 2017-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-10
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多