从TypeScript到Javascript.两个文件在同一位置
TypeScript to Javascript. Both files in the same location?
我在新的Angular应用程序中开始使用TypeScript,我只是有一个问题,关于在哪里放置所有这些js和ts文件。转译器的惯例似乎是将.js文件转储到与.ts文件相同的目录中。
这是最佳实践吗?感觉我的文件夹结构现在被。ts和。js文件污染了。接受这个还是创建另一个文件夹?
你可以用其他的方法。
使用Grunt或Gulp的npm插件。
visual studio支持这个NPM插件。
我的示例与gruntfile.js
任务运行器资源管理器工具栏显示此方法并运行带有双击定义的任务。Vs在后台的cmd上运行代码。如输出窗口所示。
之前使用在项目目录
上运行CMD代码npm install
gruntfile.js
/// <binding BeforeBuild='default' Clean='default' />
/// <vs BeforeBuild='default' Clean='ts:default' />
module.exports = function (grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
banner: '/* 'n * <%= pkg.title || pkg.name %> v<%= pkg.version %>'n' +
' * <%= pkg.homepage %>'n' +
' * Copyright (c) 2004 - <%= grunt.template.today("yyyy") %> <%= pkg.author %>'n' +
' * License: <%= pkg.license %>'n' +
' * created at <%= grunt.template.today("HH:mm:ss dd.mm.yyyy") %> 'n */ 'n',
//#region watch
watch: {
sass: {
files: 'assets/css/*.scss',
tasks: ['sass', 'cssmin']
}
},
//#endregion
//#region notify_hooks
notify_hooks: {
options: {
enable: true,
max_jshint_notifications: 5,
title: "Project notifications "
}
},
//#endregion
//#region typescript
ts: {
//https://www.npmjs.com/package/grunt-ts
default: {
src: ["**/*.ts", "!assets/typings/**/*.ts", "!**/*.d.ts", "!node_modules/**/*.ts"],
options: {
sourceMap: true
}
}
},
ts_publish: {
default: {
src: ["**/*.ts", "!assets/typings/**/*.ts", "!**/*.d.ts", "!node_modules/**/*.ts"],
options: {
sourceMap: false
}
}
},
//#endregion
//#region uglify
uglify: {
options: {
banner: '<%= banner %>',
report: 'gzip',
//manage: false,
compress: {
drop_console: true
}
},
assets_app: {
options: { sourceMap: true, banner: '<%= banner %>' /*,sourceMapName: 'path/to/sourcemap.map'*/ },
files: [{
expand: true,
cwd: 'assets/app', // bulundugu dizin
src: ['*.js', '!*.min.js'],
ext: '.js',
dest: 'assets/app/'
}]
//files: { 'assets/js/myScripts.js': ['assets/js/theme.js', 'assets/js/theme.init.js'] }
},
assets_account: {
options: { sourceMap: true },
files: [{
expand: true,
cwd: 'assets/app/account', // bulundugu dizin
src: ['**/*.js', '!**/*.min.js'],
ext: '.js',
dest: 'assets/app/account/'
}]
},
assets_cordova: {
options: { sourceMap: true },
files: [{
expand: true,
cwd: 'assets/app/cordova', // bulundugu dizin
src: ['**/*.js', '!**/*.min.js'],
ext: '.js',
dest: 'assets/app/cordova/'
}]
}
},
//#endregion
//#region cssmin
cssmin: {
options: {
banner: '<%= banner %>',
report: 'gzip'
},
my_target: {
files: [{
expand: true,
cwd: 'assets/css',
src: ['*.css', '!*.min.css'],
dest: 'assets/css',
ext: '.min.css'
}]
}
},
//#endregion
//#region less
less: {
development: {
options: {
paths: ["assets'master'less"]
},
files: [{
expand: true,
cwd: 'assets'master'less',
src: ['*.less'],
dest: 'assets'master'less',
ext: '.css'
}]
}
},
//#endregion
//#region sass
sass: {
dist: {
options: {
style: 'expanded'
},
files: { 'assets/css/myStyle.css': 'assets/css/*.scss' }
}
}
//#endregion
});
grunt.loadNpmTasks('grunt-notify');
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.loadNpmTasks("grunt-ts");
//grunt.loadNpmTasks('grunt-contrib-watch');
//grunt.loadNpmTasks('grunt-contrib-sass');
//grunt.registerTask('default', ['cssmin', 'ts']);
grunt.registerTask('default', ['ts']);
grunt.registerTask('default_ts', ['ts', 'uglify'])
grunt.registerTask('before_publish', ['cssmin', 'ts_publish', 'uglify']);
grunt.task.run('notify_hooks');
}
我package.json {
"name": "xxxx",
"version": "1.0.0",
"description": "xxxx",
"main": "xx",
"scripts": {
"test": "echo '"Error: no test specified'" && exit 1"
},
"keywords": [
"sfasdf"
],
"author": "Abdullah SARGIN apocalips@windowslive.com",
"license": "ISC",
"devDependencies": {
"grunt-contrib-cssmin": "^0.12.3",
"grunt-contrib-jshint": "^0.11.2",
"grunt-contrib-sass": "^0.9.2",
"grunt-contrib-uglify": "^0.9.1",
"grunt-contrib-watch": "^0.6.1",
"grunt-notify": "^0.4.1",
"grunt-ts": "^4.2.0-beta.1"
}
}
这是IDE的默认设置,例如Webstorm,它具有整洁的功能,例如将.js
(以及.map.js
)文件隐藏在项目浏览器中.ts
文件的子树中。您还可以通过这样的方式调整构建,分离.ts
源并创建build/
目录,其中存储编译后的.js
和.map.js
。这取决于你的个人喜好和你使用的工具。
相关文章:
- 加载两个具有相同父密钥名称的json文件
- 在ES6中,模块将导致多个网络调用,因为两个模块不能在单个文件中定义
- 为什么jQuery文件的函数中有两个参数,但只接收一个参数
- jPlayer播放两个媒体文件
- 如何在Famo.us中的两个视图(不同的js文件)之间进行通信
- 如何将json文件中的数据提取到对象数组中,并在两个控制器之间共享
- 如何在不必维护每个文件的两个版本的情况下,将通用JavaScript和映像部署到两个不同的EAR
- 使用AddThis-config-data_ga_property向两个Google Analytics配置文件报告
- 我可以在两个javascript文件之间传递一个字符串吗?
- 两个用户如何协作编辑 JSON 文件
- 如何使用HTML5和Javascript同时读取两个文本文件
- 为什么不是'当试图使用Ajax和外部PHP文件发布内容时,我的表单工作不正常,该文件接收两个字符串
- 使用ng repeat从两个不同的JSON文件中提取数据
- 在两个解决方案中引用通用的Javascript文件
- 如何手动绑定两个javascript文件
- 如何使用WebRTC在两个浏览器之间传输文件
- Javascript无法识别两个不同的PDF文件
- 在同一命名空间中保留两个独立的javascript文件/代码段
- 如何使用grunt durandal输出两个文件
- 在一个函数中使用来自两个单独 JSON 文件的数据