在Angular2中组织js文件

时间:2016-10-10 16:02:03

标签: angular

我阅读了整个Angular Style Guide

这是一个很好的起点,但缺乏一些观点。

例如:我们应该在哪里放置生成的javascript文件? 默认情况下 tsc 将文件放在.ts文件的同一文件夹中,但这样 项目文件夹变得非常脏。

我创建了一个“wwwroot”文件夹,我放置了生成的js,但我不喜欢这种方式,因为我还必须复制.css and .html文件。{ 1}}。

有最好的做法吗?

非常感谢

2 个答案:

答案 0 :(得分:0)

我将自定义js文件放入js目录,该目录放在assets文件夹中。这样,应用程序在编译和准备分发或生产时可以访问它。

所以你的文件结构应该是这样的,

SyntaxError: Unexpected string
  Object.parse (native)
  parse (/home/rob/git/project/service/node_modules/body-parser/lib/types/json.js:88:17)
  /home/rob/git/project/service/node_modules/body-parser/lib/read.js:116:18
  invokeCallback (/home/rob/git/project/service/node_modules/body-parser/node_modules/raw-body/index.js:262:16)
  done (/home/rob/git/project/service/node_modules/body-parser/node_modules/raw-body/index.js:251:7)
  IncomingMessage.onEnd (/home/rob/git/project/service/node_modules/body-parser/node_modules/raw-body/index.js:307:7)
  IncomingMessage.<anonymous> (/home/rob/git/project/service/node_modules/dependency-project/node_modules/log4js-client/node_modules/request-context/node_modules/continuation-local-storage/context.js:84:17)
  emitNone (events.js:67:13)
  IncomingMessage.emit (events.js:166:7)
  IncomingMessage.emitted [as emit] (/home/rob/git/project/service/node_modules/dependency-project/node_modules/log4js-client/node_modules/request-context/node_modules/continuation-local-storage/node_modules/emitter-listener/listener.js:122:21)
  endReadableNT (_stream_readable.js:913:12)
  /home/rob/git/project/service/node_modules/request-context/node_modules/continuation-local-storage/node_modules/async-listener/glue.js:188:31
  nextTickCallbackWith2Args (node.js:442:9)
  process._tickCallback (node.js:356:17)

然后在assets/js/custom.js 文件中,您可以执行此操作,

src/index.html

答案 1 :(得分:0)

如果您正在使用角度2并且在设置时遇到麻烦,我建议使用Angular CLI。这将为你抽象出很多这样的东西,让你快速编写代码。这是一个开始的理想选择,所以看看它。)。

回答你的问题。我一直在做的是使用tsconfig.json文件来定义我的typescript编译器的工作方式。在这里,我定义了编译打字稿文件的out目录。

{
  "compilerOptions": {
    "target": "es5",
    "noImplicitAny": false,
    "removeComments": true,
    "sourceMap": true,
    "module": "es2015",
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "moduleResolution": "node",
    "outDir": "out",
"types": [
      "es6-shim",
      "jasmine",
      "lodash",
      "node",
      "toastr"
    ]
  },
  "exclude": [
    "out",
    "node_modules",
    "dist",
    "reports"
  ],
  "version": "2.0.2"
}

这是我的一个配置的整个文件。请参阅outDir选项。