部分集成 typescript,angularjs,grunt
Integrating typescript partially, angularjs, grunt
美好的一天,
我想将 typescript 集成到一个使用 grunt 的 angularjs 项目中。我想一步一步地做,这样就不需要重新编写整个项目。
原因是 1) 提高代码质量,为此使用 typescript 和 linting。 2) 引入模块化,因为目前 .js 文件的大小不断增加,代码的可读性也越来越差。
目前该项目在以下项目中使用 grunt:
'clean:dist',
'clean:typescript',
'ts',
.......,
'jsbeautifier',
'less',
'useminPrepare',
'concat',
'copy:dist',
'cssmin',
'uglify',
'filerev',
'usemin',
'htmlmin'
在那个 grunt 工作流程中发生的事情是,typescript 部分被编译并且 typescript 构建目录包含在 index.html 文件中。所以 'useminPrepare',
'concat',
'copy:dist',
'cssmin',
'uglify',
'filerev',
'usemin',
workflow 将 typescript 代码成功集成到 vendor.js。
目前的问题是我在浏览器中打开时出现以下错误。
Uncaught ReferenceError: exports is not defined
但是该线程中的所有建议都没有删除 (typescript to ) javascript 编译代码中的 Object.defineProperty(exports, "__esModule", { value: true });
。
我使用了 <script>var exports = {};</script>
然后我得到了 Uncaught ReferenceError: module is not defined
错误。注意:我还包括了 <script src="bower_components/commonjs/common.js"></script>
所以我的假设是我需要在 'useminPrepare'
和
'usemin'
,但似乎 usemin 不支持 browserify。
所以我的问题:
- 如何消除这些错误并将用 typescript 编写的部分合理地集成到包中。
- 将 typescript 部分集成到 angularjs 和 grunt 项目中的任何建议或任何其他可能的途径?
- 如果我走错了路,那是不可能的,或者太复杂了。您认为还有哪些其他方式可以实现我的目标 1) 和 2)(最上面)?
非常感谢您的帮助。
干杯,
托拜厄斯
我在这个问题中找到了答案:
- 使用
"module": "none"
- 使用全局 d.ts 文件,如中所述
上面的link。
- 使用 grunt 和 usemin。放一个球形图案
(通配符)进入你的 html 文件以包含编译的打字稿
文件
<script src="xyz/build/tsc/**/*.js"></script>
美好的一天,
我想将 typescript 集成到一个使用 grunt 的 angularjs 项目中。我想一步一步地做,这样就不需要重新编写整个项目。
原因是 1) 提高代码质量,为此使用 typescript 和 linting。 2) 引入模块化,因为目前 .js 文件的大小不断增加,代码的可读性也越来越差。
目前该项目在以下项目中使用 grunt:
'clean:dist',
'clean:typescript',
'ts',
.......,
'jsbeautifier',
'less',
'useminPrepare',
'concat',
'copy:dist',
'cssmin',
'uglify',
'filerev',
'usemin',
'htmlmin'
在那个 grunt 工作流程中发生的事情是,typescript 部分被编译并且 typescript 构建目录包含在 index.html 文件中。所以 'useminPrepare',
'concat',
'copy:dist',
'cssmin',
'uglify',
'filerev',
'usemin',
workflow 将 typescript 代码成功集成到 vendor.js。
目前的问题是我在浏览器中打开时出现以下错误。
Uncaught ReferenceError: exports is not defined
但是该线程中的所有建议都没有删除 (typescript to ) javascript 编译代码中的 Object.defineProperty(exports, "__esModule", { value: true });
。
我使用了 <script>var exports = {};</script>
然后我得到了 Uncaught ReferenceError: module is not defined
错误。注意:我还包括了 <script src="bower_components/commonjs/common.js"></script>
所以我的假设是我需要在 'useminPrepare'
和
'usemin'
,但似乎 usemin 不支持 browserify。
所以我的问题:
- 如何消除这些错误并将用 typescript 编写的部分合理地集成到包中。
- 将 typescript 部分集成到 angularjs 和 grunt 项目中的任何建议或任何其他可能的途径?
- 如果我走错了路,那是不可能的,或者太复杂了。您认为还有哪些其他方式可以实现我的目标 1) 和 2)(最上面)?
非常感谢您的帮助。
干杯, 托拜厄斯
我在这个问题中找到了答案:
- 使用
"module": "none"
- 使用全局 d.ts 文件,如中所述 上面的link。
- 使用 grunt 和 usemin。放一个球形图案
(通配符)进入你的 html 文件以包含编译的打字稿
文件
<script src="xyz/build/tsc/**/*.js"></script>