目标是创建一个bower兼容的包。
我是包装新手,做了一些研究,但还没有线索。
问题简化如下:
\src\ID.js
\src\Person.js
Run Code Online (Sandbox Code Playgroud)
ID.js
export default class ID {
static gen() {
return 'a unique ID';
}
}
Run Code Online (Sandbox Code Playgroud)
Person.js
import ID from './ID.js';
export default class Person {
constructor(name) {
this.name = name;
this.id = ID.gen();
}
}
Run Code Online (Sandbox Code Playgroud)
唯一应该公开的类是Person,ID只会在内部使用。
如果我想创建一个名为 的包person,那么我认为最好将所有源文件构建为一个。
我知道一点点使用 ES5 进行合并,但是对于 ES6 类,我不知道。
也许我可以创建一个父对象来保存这两个类?但我真的很想知道正确的方法。如果没有这种方式,我也会采取类似将 ES6 编译为 ES5 方法的方法。
我有一个结构如下的项目:
\build
\deps
\src
CMakeLists.txt
clean.cmake
Run Code Online (Sandbox Code Playgroud)
有一些库依赖项位于deps. 所有这些库都有 CMakeinstall命令。
之后install,输出文件将放在build目录中:
\build\fin\bin
\build\fin\lib
\build\fin\include
Run Code Online (Sandbox Code Playgroud)
就我而言,我将运行cmake package以生成二进制安装包,它会在_CPack_Packages.
问题是我不需要lib并且include被包含在二进制文件中。但我还没有找到解决办法。
我尝试了以下方法:
CPACK_SOURCE_IGNORE_FILES和CPACK_SOURCE_STRIP_FILES。这些用于打包我认为的源代码,不适用于我的案例。
instal(SCRIPT "${CMAKE_CURRENT_SOURCE_DIR}/clean.cmake")删除不必要的文件/目录。在clean.cmake,if(EXISTS "${CMAKE_INSTALL_PREFIX}/bin/ProjectA.lib")返回FALSE,${CMAKE_INSTALL_PREFIX}脚本运行时目录中没有任何内容,但我可以在完成后找到文件。
install_manifest.txt. 我还没有找到正确访问此文件的方法。我不确定这会起作用。感谢您的帮助!
编辑:
该install像下面的命令:
install(TARGETS ${INS_TARGETS}
RUNTIME DESTINATION bin COMPONENT applications
LIBRARY DESTINATION lib COMPONENT libraries
ARCHIVE DESTINATION lib COMPONENT libraries
)
Run Code Online (Sandbox Code Playgroud)